[Kiến trúc máy tính] Phần 1: Từ tín hiệu sóng điện từ đến phần mềm máy tính

Đối với mình, phát minh vĩ đại nhất của nhân loại trong lĩnh vực khoa học nói chung và vật lý nói riêng, chính là động cơ điện. 200 năm từ khi Michael Faraday phát minh ra động cơ điện (1821), con người đã đạt được những thành tựu to lớn nhờ vào việc ứng dụng các công nghệ trong lĩnh vực điện - điện tử. 

Nói riêng trong ngành công nghiệp máy tính, xuất phát từ những tín hiệu sóng điện từ đơn giản, ngày nay, những gì chúng ta có là những mạng xã hội Facebook, Twitter thống trị toàn cầu, công cụ tìm kiếm Google mang tri thức thế giới đến cho bạn chỉ với một cú click, Youtube áp đảo mảng truyền thông so với các công ty truyền thống, Bitcoin đe doạ vị thế của các loại tiền tệ và ngân hàng tại nhiều quốc gia,...

Giống như nhiều ngành công nghiệp khác, sự phát triển của ngành máy tính gắn liền với quá trình chuyên môn hóa. Xuất phát điểm đơn giản, máy tính được sinh ra để giúp con người tính toán, lưu trữ và trao đổi thông tin. Dù trong bất kì giai đoạn phát triển nào, máy tính cũng chỉ có thể hiểu và thực thi những lệnh đơn giản được gọi là mã máy (machine language). Những lệnh này chỉ thực thi công việc như cộng trừ hai số, kiểm tra một số có bằng 0 hay không, sao chép dữ liệu từ nơi này đến nơi khác. Dù các tín hiệu sóng điện từ là analog nhưng được các linh kiện máy tính chuyển đổi và sử dụng dưới dạng digital, vì vậy mã máy mà máy tính sử dụng được viết dưới dạng mã nhị phân. Do đó, ở thời kì đầu, để giao tiếp và ra lệnh cho máy tính thực thi tác vụ nào đó, người lập trình phải viết mã dưới dạng mã máy này. Dễ dàng nhận thấy loại mã này là quá khó nhớ đối với con người, gây bất tiện trong việc sử dụng, dẫn đến việc người lập trình phải mất rất nhiều thời gian và công sức để viết được một chương trình. Giải pháp cho vấn đề này là định nghĩa các loại ngôn ngữ lập trình mới, phù hợp và dễ dàng cho người lập trình đọc hiểu và sử dụng. Các ngôn ngữ lập trình này sau đó sẽ được ánh xạ thành tập các lệnh thuộc mã máy để máy tính có thể thực thi. Nội dung trọng tâm của series này là trình bày cách thiết kế một kiến trúc máy tính để thực hiện được việc ánh xạ đó.

Kiến trúc máy tính (Computer Architecture) là một kiến kiến nền tảng cho ngành máy tính nói chung, đặc biệt là kiến thức tiên quyết cho các môn học như Hệ điều hành (Operating System), Mạng máy tính (Computer Network) hay Tính toán song song (Parallel Computing),...

Tham khảo: Andrew S. Tanenbaum, Todd Austin. Structured Computer Organization (6th edition). 

Comments

Popular posts from this blog

Chặng đường thứ nhất: Toán học và khát khao

Hợp và tan