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

Select any filter and click on Apply to see results

Các bài viết cùng tác giả

Arduino Leonardo là gì ?

Chúng ta đã quá quen thuộc với các board mạch Arduino "truyền thống" như Arduino Uno R3, Nano hay phiên bản tối giản là Arduino Pro Mini. Nếu là một người tinh ý, các bạn sẽ dễ dàng nhận thấy board Arduino Leonardo có kích thước giốn với Arduino, pinout cũng tương tự luôn. Thật vậy, với một người yêu thích Arduino, bạn sẽ có một thắc mắc: Tại sao người ta lại làm ra mạch Arduino Leonardo, trong khi nó "khá giống" với Arduino Uno R3, chứ không muốn nói là giống "hệt", liệu nhà phát triển Arduino quá "rãnh"? Vâng, qua bài viết này, bạn sẽ hiểu được vì sao Arduino Leonardo lại ra đời, khi nào nên dùng nó, khi nào không và các thông số kĩ thuật cơ bản.

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

Phạm vi biến

Ngôn ngữ Arduino được xây dựng trên ngôn ngữ lập trình C. Các biến của Arduino, cũng như C, có một phạm trù được gọi là phạm vi biến. Điều này trái ngược với ngôn ngữ BASIC, ở ngôn ngữ BASIC này, mọi biến đều là biến toàn cục.

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