So sánh ngắn giữa các máy tính ENIAC và UNIVAC, liên tưởng đến Arduino

Giới thiệu sơ nét về các loại máy

ENIAC (Electronic Numerical Integrator And Computer) được ra mắt vào năm 1946. Nó được chế tạo bởi 2 nhà khoa học Mỹ J. Presper Eckert (lúc này là học trò) và John Mauchly (Giáo sư), và đây là chiếc máy tính đầu tiên có khả năng lập trình. Đây là phát minh đột phá trong thời kỳ này, nó có thể thực hiện các phép tính nhanh hơn 1000 lần so với những chiếc máy tính trước đó. ENIAC cũng chính là cỗ máy được sử dụng để tính toán chế tạo bom Hydrogen.

ENIAC thực hiện được 5000 phép tính trên giây (bằng cách sử dụng 18000 ống chân không), điện năng tiêu thụ khoảng 140kW, trọng lượng 30 tấn.

Trong Thế chiến II, quân đội Mỹ đã hỗ trợ tài chính cho dự án ENIAC với chi phí vào khoảng 500.000 USD (tương đương với 8 triệu USD bây giờ).

ENIAC chấm dứt hoạt động vào tối ngày 2/10/1955.

UNIVAC (UNIVersal Automatic Computer I) được ra mắt sau máy ENIAC 5 năm, và cũng do những người thiết kế ra máy ENIAC chế tạo. Sử dụng 5200 đèn điện tử chân không, trọng lượng của UNIVAC I lên tới 13 tấn, điện năng tiêu thụ khoảng 125kW. UNIVAC I có thể thực hiện 1905 phép tính trong 1 giây. Tuy nhiên, để đặt vừa cỗ máy này, người ta đã phải sử dụng một căn phòng rộng 35,5 m2.

s

Arduino là gì? Bạn hãy xem thêm ở bài viết Arduino UNO R3 là gì?

Về cấu trúc

  1. 2 hệ máy ENIAC và UNIVAC đều sử dụng đèn chân không và tính toán trên hệ cơ số 10 (hệ thập phân). 
    • ENIAC nặng đến 30 tấn, chiếm diện tích lên đến 150m2 và sử dụng 140kW, sử dụng 18000 bóng đèn chân không (vaccum tubes) và có thể lập trình bằng công tắc.
    • UNIVAC có thể được xem là phiên bản thương mại của ENIAC khi chỉ nặng gần bằng một nửa của máy ENIAC (13 tấn), chiến diện tích nhỏ hơn nhiều (chỉ 35.5 m2), sử dụng 5200 bóng đèn chân không.
  2. Arduino có cấu trúc sử dụng các "siêu bé" transistor và tính toán trên hệ cơ số 2 (hệ nhị phân).
    • Nó chỉ nặng khoảng 50 gam, chiến diện tích bằng một chiếc thẻ ATM
    • Arduino UNO sử dụng vi điều khiển ATmega328 (16MHz) nên có cấu trúc của một vi điều khiển và có tốc độ xử lý từ vài chục đến vài trăm nghìn phép tính trên giây!

Về nguyên lý hoạt động

  1. ENIAC
    • Trung tâm của máy tính ENIAC có tên gọi là bộ đếm vòng, gồm 10 bóng chân không (được đánh số như thứ tự các phím trong bàn phím số máy tính của bạn). Một số 5 sẽ được biểu diễn bằng một xung dao động ở bóng số 5. Nếu ta cộng thêm 7 (được 12) vào, thì dao động sẽ được chuyển sang bóng số 2, và sẽ có một giao động khác tại bóng số 1 trong một bộ vòng tròn thứ 2.
    • Cứ như vậy, một thanh ghi sẽ có 11 bộ đếm vòng, nó có thể biểu diễn một số nguyên tới 10 tỷ trừ 1 (9.999.999.999), và nếu là số âm thì có thể tới -9.999.999).
    • Khi 1 thanh ghi đạt mức tối đa của nó, thì sẽ có một xung gửi đến thanh ghi tiếp theo qua dây dẫn và cứ như thế, nó tiếp tục quá trình tính toán.
    • ENIAC có tổng cộng 40 thanh ghi được đặt trong 20 máng được nối mạng với nhau (nghĩa là một thanh ghi bất kì có thể tới được một thanh ghi bất kì khác nằm trong mạng).
    • Dữ liệu được lưu theo các xung, và được lưu giữ trong các ống thủy ngân 5 chân!
  2. UNIVAC
    • Một máy UNIVAC có bộ nhớ là 1000 đơn vị thông tin, mỗi đơn vị như thế bao gồm 12 ký tự (số-chữ). Khi biểu diễn một số, các đơn vị thông tin sẽ chỉ được ghi các kỹ tự số và các phép +, - (tổng cộng có 11 ký tự).
    • 1000 đơn vị thông tin sẽ được chia thành 100 kênh (channel), mỗi kênh 10 đơn vị thông tin.
    • Bộ nhớ đệm dùng cho việc nhập / xuất bao gồm 60 đơn vị thông tin cho mỗi đơn vị (12 channel).
    • Có thêm 6 kênh phụ tùng.
    • Mỗi đơn vị là một ống thủy ngân (tương tự ống chân không), và 10 ống như thế được đặt trong 1 kênh.
    • Về việc tính toán, nó cùng dùng cách tính như ENIAC.
  3. ATmega328 (Arduino)
    • Về nguyên lý hoạt động nó cũng không quá phức tạp, nhưng mình sẽ không đưa ra bàn luận ở đây.
    • Hãy xem những gì Arduino làm được và mức độ đơn giản khi làm việc với nó, bạn sẽ thấy được sự khác biệt một trời một vực giữa các máy tính bự chà bá với một bé vi điểu khiển nhỏ gọn!

Nhận xét

2 máy tính ENIAC và UNIAC đều có một điểm chung là sử dụng bóng chân không để tính toán. Máy tính ENIAC có tốc độ tính toán nhanh hơn UNIVAC nhưng lại cồng kềnh gấp 2-3 lần so với máy UNIVAC. Điều đó đã giải thích lý do tại sao mà trên thế giới chỉ có một máy tính ENIAC, trong khi đó lại có đến 46 (một số tài liệu khác là 49) máy UNIVAC được sử dụng trong thương mại và chính trị. Nhưng, nhờ việc có thể lập trình đồng thời với tốc độ tính toán siêu nhanh đã khiến người tiêu dùng biết đến máy tính nhiều hơn và phần nào hiểu được khả năng ứng dụng của nó!

Bây giờ, bạn hãy nhìn lại chú Arduino Uno trên kệ làm việc của mình, có lẻ bạn sẽ thấy được một ánh hình ảnh nào đó của một thế hệ máy tính cách đây hàng chục năm về trước. Bạn có thấy sự tiến bộ vượt bậc trong ngành khoa học máy tính này? Từ một căn phòng rộng lớn bây giờ nó chỉ là một sấp 8 thẻ ATM xếp chồng lên nhau. Hãy tự hào vì những gì mình đang có và cố gắng biến nó thành một hệ thống "khổng lồ" với hàng chục, hàng trăm khả năng tùy biến. Nào, các bạn hãy bắt tay ngay vào việc chế tạo nào!

lên
4 thành viên đã đánh giá bài viết này hữu ích.
Từ khóa: 
Các dự án được truyền cảm hứng

Điều khiển 8 đèn LED qua wifi, sử dụng Arduino và ESP8266

Với mục đích giúp các bạn tiếp cận với các thiết bị IOT gần hơn. Hôm nay mình sẽ hướng dẫn các bạn viết chương trình điều khiển 8 LED qua mạng wifi. Và hơn thế nữa, nếu kết hợp với VPN hoặc mở port thì chúng ta có thể làm hơn thế nữa!

lên
43 thành viên đã đánh giá bài viết này hữu ích.
Các bài viết cùng tác giả

VMIG - Vòng 2 - Vòng sơ khảo [Cập nhập ngày 02/12/2015 - Lịch chấm thi]

Như vậy là chỉ còn vài tuần nữa là cuộc thi VMIG (Vietnam Makers with Intel Galileo) sẽ đi đến hồi gay cấn, các bạn đã chuẩn bị những gì rồi nhỉ? Qua bài viết này, mình xin truyền đạt thêm các thông tin mới nhất về vòng sơ khảo của cuộc thi VMIG cho các bạn được biết và lên kế hoạch chuẩn bị.

lên
3 thành viên đã đánh giá bài viết này hữu ích.

Hằng số thực

Tương tự như hằng số nguyên, hằng số thực (floating point constants) cũng có cách làm việc và sử dụng tương tự. Khi bạn viết một biểu thức tính toán, giá trị của biểu thức này sẽ được tính ra và trình biên dịch sẽ thay thế biểu thức này bằng một hằng số thực đã tính ra được. Điều đó gợi ý rằng trong những chương trình lớn, để giảm thời gian biên dịch, bạn nên tính trước giá trị của những biểu thức thay vì bắt trình biên dịch tính toán.

lên
2 thành viên đã đánh giá bài viết này hữu ích.