TỔNG QUAN
Các thế hệ máy tính
Sự phát triển của máy tính được phản ánh qua tiến bộ trong công nghệ chế tạo linh kiện cơ bản như bộ xử lý, bộ nhớ và các thiết bị ngoại vi Máy tính điện tử số đã trải qua bốn thế hệ liên tiếp, với mỗi lần chuyển giao giữa các thế hệ được đặc trưng bởi những thay đổi công nghệ cơ bản.
Hình 1- 1 Thế hệ đầu tiên (1946-1957)
ENIAC, or Electronic Numerical Integrator and Computer, was the first electronic digital computer, designed by Professor Mauchly and his student Eckert at the University of Pennsylvania in 1945.
ENIAC, hoàn thành vào năm 1946, là một trong những máy tính đầu tiên và lớn nhất với kích thước 20 mét dài, 2,8 mét cao và rộng vài mét Nó bao gồm 18.000 đèn điện tử, 1.500 công tắc tự động, nặng 30 tấn và tiêu thụ 140KW giờ Với 20 thanh ghi 10 bit, ENIAC có khả năng thực hiện 5.000 phép toán cộng mỗi giây Việc lập trình máy tính này được thực hiện thủ công thông qua việc đấu nối các đầu cắm điện và sử dụng các ngắt điện.
Giáo sư toán học John Von Neumann đã phát triển ý tưởng thiết kế máy tính IAS tại Viện Nghiên cứu Cao cấp Princeton, trong đó chương trình được lưu trữ trong bộ nhớ Bộ điều khiển sẽ lấy lệnh và biến đổi giá trị dữ liệu trong bộ nhớ, trong khi bộ làm toán và logic (ALU) thực hiện các phép toán trên dữ liệu nhị phân và điều khiển hoạt động của các thiết bị vào ra Ý tưởng này đã trở thành nền tảng cho các máy tính hiện đại ngày nay, thường được gọi là máy tính Von Neumann.
Vào đầu thập niên 50, thị trường máy tính thương mại bắt đầu phát triển với việc bán ra 48 hệ thống UNIVAC I và 19 hệ thống IBM 701.
Công ty Bell đã phát minh ra transistor vào năm 1947, đánh dấu sự chuyển mình của thế hệ thứ hai máy tính với việc thay thế đèn điện tử bằng transistor lưỡng cực Đến cuối thập niên 50, máy tính thương mại sử dụng transistor mới xuất hiện, giúp giảm kích thước, giảm chi phí và tiêu tốn năng lượng ít hơn Thời điểm này, mạch in và bộ nhớ bằng xuyến từ được áp dụng, cùng với sự ra đời của các ngôn ngữ lập trình cấp cao như FORTRAN (1956), COBOL (1959) và ALGOL (1960) Hệ điều hành kiểu tuần tự (Batch Processing) được sử dụng, cho phép chạy chương trình của người dùng theo thứ tự lần lượt.
The third generation of technology is characterized by the emergence of integrated circuits (ICs) Low-density integration circuits (SSI: Small Scale Integration) can accommodate several dozen components, while medium-density integration circuits (MSI: Medium Scale Integration) can contain hundreds of components on a single integrated circuit.
Mạch in nhiều lớp đã ra đời, dẫn đến việc bộ nhớ bán dẫn dần thay thế bộ nhớ bằng xuyến từ Đồng thời, máy tính đa chương trình và hệ điều hành chia thời gian cũng trở nên phổ biến.
Thế hệ thứ tư của công nghệ vi mạch được đặc trưng bởi các mạch tích hợp quy mô lớn (LSI) với khả năng chứa hàng ngàn linh kiện Tiến xa hơn, các mạch tích hợp quy mô rất lớn (VLSI) hiện nay có thể tích hợp hơn 10 ngàn linh kiện trên một mạch Đặc biệt, các chip VLSI hiện đại có khả năng chứa hàng triệu linh kiện, đánh dấu bước tiến vượt bậc trong công nghệ điện tử.
Sự ra đời của bộ vi xử lý tích hợp cả phần thực hiện và phần điều khiển đã thúc đẩy sự phát triển của công nghệ bán dẫn, dẫn đến việc chế tạo ra các thế hệ máy tính cá nhân Các loại bộ nhớ như bộ nhớ bán dẫn, bộ nhớ cache và bộ nhớ ảo đã trở nên phổ biến Đồng thời, các kỹ thuật cải tiến tốc độ xử lý máy tính như kỹ thuật ống dẫn, kỹ thuật vô hướng và xử lý song song mức độ cao đang được phát triển không ngừng.
Việc chuyển từ thế hệ thứ tư sang thế hệ thứ 5 của máy tính vẫn chưa rõ ràng, nhưng Nhật Bản đang dẫn đầu trong nghiên cứu để phát triển những máy tính thông minh dựa trên ngôn ngữ trí tuệ nhân tạo như LISP và PROLOG Gần đây, sản phẩm nổi bật nhất là ASIMO (Advanced Step Innovative Mobility), một robot thông minh với khả năng lên/xuống cầu thang, nhận diện người, cử chỉ, giọng nói và thực hiện mệnh lệnh của con người ASIMO có thể bắt chước cử động, gọi tên người và cung cấp thông tin ngay khi được hỏi, tạo cảm giác gần gũi và thân thiện Hiện nay, nhiều công ty và viện nghiên cứu tại Nhật Bản đang sử dụng ASIMO để tiếp khách và hướng dẫn tham quan, như Viện Bảo tàng Khoa học Năng lượng và Đổi mới Quốc gia, hãng IBM Nhật Bản và Công ty Điện lực Tokyo.
Hãng Honda bắt đầu nghiên cứu ASIMO từ năm 1986 dựa vào nguyên lý chuyển động bằng hai chân Cho tới nay, hãng đã chế tạo được 50 robot ASIMO.
Tiến bộ liên tục trong mật độ tích hợp VLSI đã dẫn đến sự phát triển mạnh mẽ của các vi xử lý như 8 bit, 16 bit, 32 bit và 64 bit, với sự xuất hiện của bộ xử lý RISC vào năm 1986 và bộ xử lý siêu vô hướng vào năm 1990 Những bộ xử lý này đã cho phép xây dựng các máy tính song song, từ vài bộ xử lý đến hàng ngàn bộ xử lý Điều này khiến các chuyên gia kiến trúc máy tính dự đoán rằng thế hệ thứ 5 sẽ là thế hệ của các máy tính xử lý song song.
Bảng 1-1 Các thế hệ máy tính
Thế Năm Kỹ thuật Sản phẩm Hãng sản xuất và máy tính hệ mới
1 1946-1957 Đèn điện tử Máy tính điện IBM 701 UNIVAC tử tung ra thị trường
2 1958-1964 Transistors Máy tính rẻ Intel,Burroughs 6500, NCR, tiền CDC 6600, Honeywell
3 1965-1971 Mach IC Máy tính mini 50 hãng mới: DEC PDP-11,
4 1972 LSI - VLSI Máy tính cá Apple II, IBM-PC, Appolo nhân và trạm DN 300, Sun 2 làm việc
5 Xử lý song Máy tính đa xử Sequent … Thinking Machine song lý Đa máy Inc Honda, Casio tính
Phân loại máy tính
2.1 Các siêu máy tính (Super Computer):
Siêu máy tính là những hệ thống máy tính đắt giá nhất, với giá bán từ vài triệu USD Chúng thường sử dụng công nghệ máy tính vectơ hoặc kỹ thuật vô hướng, được tối ưu hóa để thực hiện các phép toán khoa học và mô phỏng hiện tượng phức tạp Đặc biệt, siêu máy tính được thiết kế với khả năng xử lý song song, sở hữu hàng ngàn đến hàng trăm ngàn bộ xử lý, giúp tăng cường hiệu suất tính toán vượt trội.
2.2 Các máy tính lớn (Mainframe):
Máy tính đa dụng là thiết bị có khả năng phục vụ cho nhiều ứng dụng, từ quản lý đến các tính toán khoa học phức tạp Với kỹ thuật xử lý song song và hệ thống vào ra mạnh mẽ, máy tính này đáp ứng được nhu cầu tính toán cao Giá của một máy tính lớn có thể dao động từ vài trăm ngàn USD đến hàng triệu USD.
Là loại máy cỡ trung, giá một máy tính mini có thể từ vài chục USD đến vài trăm ngàn USD.
Là loại máy tính dùng bộ vi xử lý, giá một máy vi tính có thể từ vài trăm USD đến vài ngàn USD.
Thành quả của máy tính, qui luật Moore về sự phát triển của máy tính
Hình 1-2 minh họa sự phát triển vượt bậc của máy tính, với thành quả tối đa tăng theo hàm số mũ Độ tăng trưởng của máy vi tính đạt 35% mỗi năm, trong khi các loại máy khác chỉ tăng trưởng 20% mỗi năm Điều này chứng tỏ rằng tính năng của máy vi tính đã vượt trội hơn so với các loại máy tính khác vào đầu thập niên 90.
Hình 1- 2 Đánh giá thành quả của máy tính
Máy tính dùng thật nhiều bộ xử lý song song rất thích hợp khi phải làm tính thật nhiều.
Sự tăng trưởng theo hàm số mũ của công nghệ chế tạo transistor MOS là nguồn gốc của thành quả các máy tính.
Sự phát triển của tần số xung nhịp trong các bộ xử lý MOS được minh họa qua Hình 1-4, cho thấy rằng tần số xung nhịp tăng gấp đôi sau mỗi thế hệ Đồng thời, độ trì hoãn trên mỗi cổng/xung nhịp cũng giảm 25% mỗi năm.
Sự tiến bộ trong công nghệ máy tính, đặc biệt là sự phát triển của bộ vi xử lý, đã giúp máy vi tính đạt được tốc độ vượt trội so với các máy tính lớn hơn.
Hình 1-3 Sự phát triển của bộ xử lý Intel
Bảng 1-2 Sự phát triển của bộ xử lý Intel dựa vào số lượng transistor trong một mạch tích hợp theo qui luật Moore
Bộ xử lý Intel Năm sản xuất Số lượng transistor tích hợp
Từ năm 1965, Gordon Moore, đồng sáng lập Intel, đã nhận thấy rằng số lượng transistor trong mỗi mạch tích hợp có thể tăng gấp đôi mỗi năm Ông dự đoán rằng khả năng của máy tính sẽ tăng gấp đôi sau 18 tháng với chi phí không đổi.
Kết quả của quy luật Moore là:
+ Chi phí cho máy tính sẽ giảm
+ Giảm kích thước các linh kiện, máy tính sẽ giảm kích thước
+ Hệ thống kết nối bên trong mạch ngắn: tăng độ tin cậy, tăng tốc độ
+ Tiết kiệm năng lượng cung cấp, toả nhiệt thấp
+ Các IC thay thế cho các linh kiện rời
Hình 1-4 Xung nhịp các bộ xử lý MOS
Một số khái niệm liên quan:
Mật độ tích hợp đề cập đến số lượng linh kiện tích hợp trên một diện tích bề mặt của tấm silicon, cho thấy số lượng nhiệm vụ và mạch được thực hiện trên đó.
+ Tần số xung nhịp bộ xử lý cho biết tần số thực hiện các nhiệm vụ
Tốc độ xử lý của máy tính trong một giây, hay công suất tính toán của mỗi mạch, được xác định bằng tích của mật độ tích hợp và tần số xung nhịp Công suất này tăng theo hàm mũ theo thời gian.
Thông tin và sự mã hóa thông tin
Hình 1-5 Thông tin về 2 trạng thái có ý nghĩa của hiệu điện thế
Khái niệm về thông tin gắn liền với sự hiểu biết một trạng thái cho sẵn trong nhiều trạng thái có thể có vào một thời điểm cho trước.
Trong bài viết này, chúng ta định nghĩa hai trạng thái tín hiệu: trạng thái thấp khi hiệu điện thế dưới VL và trạng thái cao khi hiệu điện thế vượt quá VH Để thu thập thông tin, cần xác định thời điểm quan sát tín hiệu Chẳng hạn, tại thời điểm t1, tín hiệu đang ở trạng thái thấp, trong khi tại thời điểm t2, tín hiệu chuyển sang trạng thái cao.
4.2 Lượng thông tin và sự mã hoá thông tin
Thông tin được đo lường bằng đơn vị thông tin mà ta gọi là bit Lượng thông tin được định nghĩa bởi công thức:
Trong đó I: là lượng thông tin tính bằng bit
N: là số trạng thái có thể có
Một bit đại diện cho sự hiểu biết về một trạng thái trong hai trạng thái khả thi Ví dụ, nếu một trạng thái có thể có 8 trạng thái khác nhau, thì lượng thông tin tương ứng với sự hiểu biết về trạng thái đó sẽ được tính toán dựa trên số lượng trạng thái khả thi.
I = Log2(8) = 3 bit Tám trạng thái được ghi nhận nhờ 3 số nhị phân (mỗi số nhị phân có thể có giá trị 0 hoặc 1).
Lượng thông tin được xác định bởi số lượng bit cần thiết để biểu diễn các trạng thái có thể Một bit là đơn vị cơ bản của thông tin nhị phân Một từ n bit có khả năng đại diện cho 2^n trạng thái khác nhau, do đó, một từ n bit tương ứng với một lượng thông tin n bit.
Bảng 1-3 Tám trạng thái khác nhau ứng với 3 số nhị phân
Hệ thống số là khái niệm xác định phạm vi giá trị mà một chữ số có thể mang Chẳng hạn, trong hệ thập phân, chữ số có thể có giá trị từ 0 đến 9, trong khi đó, trong hệ nhị phân, một chữ số (bit) chỉ có hai giá trị là 0 hoặc 1.
Dạng tổng quát để biểu diễn giá trị của một số:
Vk là số cần biểu diễn giá trị m, trong đó m là số thứ tự của chữ số phần lẻ Phần lẻ của số có m chữ số được đánh số từ -1 đến -m, trong khi n-1 là số thứ tự của chữ số phần nguyên.
(phần nguyên của số có n chữ số được đánh số thứ tự từ 0 đến n-1) bi: giá trị của chữ số thứ i k: hệ số (k: hệ thập phân; k=2: hệ nhị phân; ).
Ví dụ: biểu diễn số 541.2510
Máy tính chủ yếu được cấu tạo từ các mạch điện tử với hai trạng thái, do đó việc sử dụng hệ số nhị phân để biểu diễn trạng thái của mạch điện và mã hóa ký tự hay số liệu là rất tiện lợi Để chuyển đổi số từ hệ thập phân sang nhị phân, có hai phương pháp biến đổi.
Phương thức số dư là cách hiệu quả để chuyển đổi phần nguyên của số thập phân sang nhị phân Ví dụ, khi đổi số 23.37510 sang nhị phân, chúng ta sẽ áp dụng phương pháp này cho phần nguyên.
- Phương thức nhân để biến đổi phần lẻ của số thập phân sang nhị phân
Kết quả cuối cùng nhận được là: 23.37510 = 10111.0112
Trong quá trình chuyển đổi phần thập phân lẻ sang số nhị phân bằng phương pháp nhân, có những trường hợp đặc biệt mà việc chuyển đổi dẫn đến số lặp vô hạn, với bit có trọng số lớn nhất và bit có trọng số nhỏ nhất.
Trong quá trình chuyển đổi số nhị phân sang các hệ thống số khác, chúng ta có thể nhóm các số nhị phân lại để biểu thị cho các số trong hệ thống tương ứng.
Thông thường, người ta nhóm 4 bit trong hệ nhị phân hệ để biểu diễn số dưới dạng thập lục phân (Hexadecimal).
Dựa vào cách biến đổi số trong bảng, chúng ta có thể thấy ví dụ về việc chuyển đổi các số trong các hệ thống số khác nhau sang hệ nhị phân.
Một từ n bit có khả năng biểu diễn tất cả các số dương từ 0 đến 2^n - 1 Nếu di là một số nhị phân thứ i, thì từ n bit sẽ tương ứng với một số nguyên thập phân.
Một Byte (gồm 8 bit) có thể biểu diễn các số từ 0 tới 255 và một từ 32 bit cho phép biểu diễn các số từ 0 tới 4294967295.
Có nhiều cách để biểu diễn một số n bit có dấu Trong tất cả mọi cách thì bit cao nhất luôn tượng trưng cho dấu.
Khi bit dấu có giá trị 0, số được biểu diễn là số nguyên dương, trong khi bit dấu có giá trị 1 biểu thị số nguyên âm Tuy nhiên, cách biểu diễn này không chính xác khi sử dụng số thừa K, mà sẽ được thảo luận chi tiết trong phần sau của chương này, nơi mà bit dấu 1 lại đại diện cho số nguyên dương và bit dấu 0 đại diện cho số nguyên âm.
Số nguyên có bit dn-1 là bit dấu và có trị số tượng trưng bởi các bit từ d0 tới dn-2 a Cách biểu diễn bằng trị tuyệt đối và dấu
Trong phương pháp này, bit dn-1 đóng vai trò là bit dấu, trong khi các bit từ d0 đến dn-2 biểu thị giá trị tuyệt đối Do đó, một từ n bit sẽ tương ứng với một số nguyên thập phân có dấu.
- Một Byte (8 bit) có thể biểu diễn các số có dấu từ -127 tới +127
- Có hai cách biểu diễn số không là 0000 0000 (+0) và 1000 0000 (-0)
22 b Cách biểu diễn hằng số bù 1
Trong cách biểu diễn này, số âm -N được có bằng cách thay các số nhị phân di của số đương
N bằng số bù của nó (nghĩa là nếu di = 0 thì người ta đổi nó thành 1 và ngược lại)
- Một Byte cho phép biểu diễn tất cả các số có dấu từ -127 (1000 00002) đến 127 (0111
Trong hệ thống số nhị phân, số 0 có hai cách biểu diễn: 0000 0000 (+0) và 1111 1111 (-0) Để tính số bù 2 của một số, ta lấy số bù 1 và cộng thêm 1 Do đó, một từ n bit (dn-1 d0) sẽ có giá trị thập phân tương ứng.
Một từ n bit có khả năng biểu diễn các số có dấu trong khoảng từ -2^(n-1) đến 2^(n-1) - 1 Đối với số không, cách duy nhất để biểu diễn là tất cả các bit đều bằng không Ví dụ, số +25 được biểu diễn dưới dạng nhị phân là 00011001, trong khi số -25 được biểu diễn là 11100111.
- Dùng 1 Byte (8 bit) để biểu diễn một số có dấu lớn nhất là +127 và số nhỏ nhất là –128
- Chỉ có một giá trị 0: +0 = 000000002, -0 = 000000002
Bảng 1-4 Số 4 bit có dấu theo cách biểu diễn số âm bằng số bù 2 d3 d2 d1 d0 N d3 d2 d1 d0 N
0 0 1 0 2 1 0 1 0 -6 d Cách biểu diễn bằng số thừa K
Trong cách này, số dương của một số N có được bằng cách “cộng thêm vào” số thừa
KIẾN TRÚC PHẦN MỀM BỘ XỬ LÝ
Thành phần cơ bản của máy tính
Bộ máy tính cơ bản bao gồm bộ xử lý trung tâm (CPU), bộ nhớ trong và các thiết bị nhập-xuất thông tin, tất cả được kết nối qua các hệ thống bus Các bus này bao gồm bus địa chỉ, bus dữ liệu và bus điều khiển, trong đó bus địa chỉ và bus dữ liệu chịu trách nhiệm chuyển dữ liệu giữa các bộ phận, còn bus điều khiển đảm bảo sự đồng bộ trong việc trao đổi thông tin Thông thường, có hai loại bus: một là bus hệ thống để trao đổi thông tin giữa CPU và bộ nhớ trong (qua cache), và hai là bus vào-ra để kết nối các thiết bị vào-ra với bộ nhớ trong.
1.1 Bộ xử lý trung tâm (CPU)
Hình 2-1 Cấu trúc bộ xử lý trung tâm của một hệ máy tính đơn giản
Một chương trình sẽ được sao chép từ đĩa cứng vào bộ nhớ trong cùng với các thông tin cần thiết để hoạt động Những thông tin này được nạp vào bộ nhớ từ các thiết bị cung cấp thông tin như bàn phím hoặc đĩa từ Bộ xử lý trung tâm sẽ đọc lệnh và dữ liệu từ bộ nhớ, thực hiện các lệnh và lưu kết quả trở lại bộ nhớ hoặc xuất kết quả ra thiết bị đầu ra như màn hình hoặc máy in.
Bộ xử lý trung tâm (CPU) là thành phần chính thực hiện lệnh trong máy tính, lấy lệnh từ bộ nhớ trong và xử lý dữ liệu tương ứng CPU bao gồm hai phần chính: phần thi hành lệnh và phần điều khiển Phần thi hành lệnh, gồm bộ làm toán và luận lý (ALU) cùng các thanh ghi, thực hiện các phép toán trên dữ liệu Trong khi đó, phần điều khiển đảm bảo các lệnh được thi hành theo thứ tự và điều phối các mạch chức năng để thực hiện các lệnh một cách hiệu quả.
- ALU- bộ xử lý số học, thực hiện các phép tính số học, như phép cộng (+) trừ (-), nhân, chia và các phép logic như logic AND, OR, NOT, XOR
Hình 2-2: Hình ảnh một số loại CPU Petium4
Hình 2-3 Bố trí memory kiểu Intel Hình 2-4 Bố trí memory kiểu AMD
Mainboard là trung tâm điều khiển mọi hoạt động của máy tính, đóng vai trò trung gian giữa CPU và các thiết bị khác Nó chứa đựng các linh kiện điện tử quan trọng như CPU (bộ vi xử lý), hệ thống BUS, bộ nhớ (RAM), thiết bị lưu trữ (đĩa cứng, ổ CD), các card (card màn hình, card mạng, card âm thanh) và các vi mạch hỗ trợ.
Form factor là yếu tố quyết định kích thước và cách bố trí mainboard trong thân máy Hiện nay, chuẩn ATX (Advanced Technology Extended) 12V, được Intel thiết kế vào năm 1995, đang chiếm ưu thế trên máy tính để bàn, thay thế chuẩn AT Chế độ bật máy được kích hoạt qua công tắc bốn điểm tiếp xúc điện, và với nguồn ATX, người dùng có thể bật tắt bằng phần mềm hoặc nối mạch hai chân cắm kích nguồn Các nguồn ATX chuẩn thường có công tắc tổng để ngắt hoàn toàn dòng điện Ngoài ra, còn có micro ATX, có kích thước nhỏ hơn ATX.
ASUS P5KPL-AM -Intel G31 chipset BIOSTAR G31D-M7 - Intel G31 chipset (Core 2 Duo & Quadcore ) (Core 2 Quad) - 2 x DDR2 800
Hình 2-5.Hình ảnh một số loại main hiện nay
Vào năm 2004, Intel đã giới thiệu mainboard BTX (Balanced Technology Extended), nhằm cải thiện hiệu suất làm mát và giảm tiếng ồn cho máy tính Thiết kế BTX sử dụng ít quạt hơn so với chuẩn ATX (Advanced Technology Extended), giúp hệ thống hoạt động êm ái và duy trì nhiệt độ thấp hơn Sự thay đổi này cũng bao gồm cách bố trí các thành phần và thiết kế tản nhiệt, mang lại nhiều lợi ích cho người sử dụng.
Hệ thống máy tính kết nối các thành phần lại với nhau, điều khiển tốc độ BUS để phù hợp với từng thành phần khác nhau, và quản lý nguồn cung cấp cho các linh kiện trên bo mạch chính.
Xung nhịp chủ (xung Clock) đóng vai trò quan trọng trong việc đồng bộ hóa hoạt động của toàn bộ hệ thống máy tính Do đó, khi xảy ra sự cố với bo mạch chủ (Main), toàn bộ máy tính sẽ không thể hoạt động.
Ví dụ: Mainboard :ASUS Intel 915GV P5GL-MX, Socket 775/ s/p
3.8Ghz/ Bus 800/ Sound& Vga, Lan onboard/PCI Express 16X/Dual 4DDR400/ 3 PCI/ 4 SATA/ 8 USB 2.0 có nghĩa là
- ASUS Intel 915GV P5GL-MX, đơn giản đây chỉ là tên của loại bo mạch chỉ của hãng Asus
- Socket 775 như đã nói ở trên, là loại khe cắm cho CPU
- S/p 3.8 Ghz đó chính là tốc độ xung đồng hồ tối đa của CPU mà bo mạch chủ hỗ trợ
BUS 800 chỉ tần số hoạt động tối đa của đường giao tiếp dữ liệu mà bo mạch chủ hỗ trợ Thông thường, bus có tốc độ cao sẽ tương thích với các CPU chạy ở bus thấp hơn.
PCI Express 16X là khe cắm card màn hình và mạch chủ, với con số 16 thể hiện băng thông giao tiếp tương đối So với các khe AGP 8X và 4X trên bo mạch cũ, PCI Express 16X cung cấp băng thông cao hơn Tuy nhiên, tốc độ hoạt động thực tế không chỉ phụ thuộc vào băng thông lý thuyết mà còn bị ảnh hưởng bởi nhiều yếu tố khác như dung lượng RAM và loại CPU.
- Sound & VGA, LAN onboard: bo mạch này đã được tích hợp sẵn card âm thanh, card màn hình, và card mạng
Bo mạch chủ này được trang bị 3 khe cắm PCI cho phép lắp đặt các thiết bị giao tiếp như card âm thanh và modem gắn trong Ngoài ra, nó còn có 4 khe cắm SATA, mang lại tốc độ và độ ổn định cao hơn so với chuẩn IDE, giúp kết nối với ổ cứng hiệu quả hơn Bên cạnh đó, bo mạch chủ cũng hỗ trợ 8 cổng cắm USB 2.0, đáp ứng nhu cầu kết nối với nhiều thiết bị ngoại vi.
Bộ nhớ trong, hay còn gọi là bộ nhớ truy cập ngẫu nhiên (RAM), là một tập hợp các ô nhớ chứa thông tin được mã hóa thành số nhị phân, không phụ thuộc vào kiểu dữ liệu Mỗi ô nhớ có một địa chỉ riêng và thời gian truy cập vào bất kỳ ô nhớ nào là như nhau, cho phép thực hiện các lệnh và lưu trữ số liệu một cách hiệu quả.
Memory) Độ dài của một từ máy tính (Computer Word) là 32 bit (hay 4 byte), tuy nhiên dung lượng một ô nhớ thông thường là 8 bit (1 Byte)
Dùng để lưu trữ thông tin hay còn gọi là bộ nhớ ngoài, thiết bị lưu trữ điển hình nhất là:
Bộ phận vào – ra đóng vai trò quan trọng trong việc xuất nhập thông tin, giúp giao tiếp giữa máy tính và người dùng, cũng như giữa các máy tính trong hệ thống mạng Các thiết bị xuất nhập phổ biến bao gồm bộ lưu trữ ngoài, màn hình, máy in, bàn phím, chuột, máy quét ảnh, và các giao diện mạng cục bộ hay mạng diện rộng Ngoài ra, bộ tạo thích ứng là vi mạch tổng hợp (chipset) giúp kết nối các hệ thống bus với tốc độ dữ liệu khác nhau.
Hình 2-6: Sơ đồ mô tả hoạt động điển hình của một máy tính
Định nghĩa kiến trúc máy tính
Kiến trúc máy tính bao gồm ba phần: Kiến trúc phần mềm, tổ chức của máy tính và lắp đặt phần cứng.
Kiến trúc phần mềm của máy tính chủ yếu tập trung vào kiến trúc của bộ xử lý, bao gồm các yếu tố quan trọng như tập lệnh, dạng lệnh và các kiểu định vị.
Tập lệnh là tập hợp các lệnh mã máy hoàn chỉnh mà bộ xử lý trung tâm có thể hiểu và xử lý, thường được trình bày dưới dạng hợp ngữ Mỗi lệnh trong tập lệnh chứa thông tin cần thiết để bộ xử lý thực hiện, bao gồm mã tác vụ, địa chỉ toán hạng nguồn, địa chỉ toán hạng kết quả và lệnh kế tiếp, mặc dù thông tin về lệnh kế tiếp thường không được hiển thị rõ ràng.
+ Kiểu định vị chỉ ra cách thức thâm nhập toán hạng
Kiến trúc phần mềm là phần mà các lập trình viên hệ thống phải nắm vững để việc lập trình hiểu quả, ít sai sót.
Phần tổ chức của máy tính đề cập đến cấu trúc bên trong của bộ xử lý, các bus, các cấp bộ nhớ và các yếu tố kỹ thuật khác Nội dung chi tiết về phần này sẽ được trình bày trong các chương tiếp theo.
Lắp đặt phần cứng máy tính là quá trình lắp ráp các linh kiện điện tử và bộ phận phần cứng cần thiết để hoàn thiện một máy tính Nội dung này không được đề cập trong giáo trình.
Một số máy tính có cùng kiến trúc phần mềm nhưng khác nhau về tổ chức, như VAX-11/780 và VAX 8600 Cả hai máy VAX-11/780 và VAX-11/785 đều có kiến trúc phần mềm tương tự và tổ chức gần giống nhau, nhưng phần cứng lắp đặt lại khác biệt VAX-11/785 sử dụng mạch kết hiện đại để cải thiện tần số xung nhịp và có một số thay đổi trong tổ chức bộ nhớ trong.
Tập lệnh
3.1 Tập các thanh ghi (của bộ vi xử lý 8086) a Các thanh ghi dữ liệu
Bộ vi xử lý thực hiện lệnh nhanh hơn khi dữ liệu được lưu trong các thanh ghi thay vì bộ nhớ, vì điều này yêu cầu ít chu kỳ đồng hồ hơn Do đó, xu hướng sản xuất bộ vi xử lý hiện nay là tích hợp nhiều thanh ghi hơn.
Các thanh ghi dữ liệu cho phép truy cập riêng biệt các byte thấp và byte cao, sử dụng từng 8 bít một cách độc lập Byte cao của thanh ghi AX được gọi là AH.
(Height) và byte thấp được gọi là AL (Lower) Tương tự cho các thanh ghi BX, CX, DX có
BH, BL, CH, CL, DH, DL
Chức năng chuyên biệt của từng thanh ghi dữ liệu:
* Thanh ghi AX (thanh ghi chứa – Accumulator register)
AX là thanh ghi phổ biến nhất trong các lệnh số học, logic và chuyển dữ liệu, nhờ vào việc sử dụng chúng giúp tạo ra mã máy ngắn gọn nhất.
Trong các phép toán nhân chia, một trong các số hạng phải được lưu trữ trong thanh ghi AX (đối với 16 bit) hoặc AL (đối với 8 bit) Ngoài ra, các thao tác vào ra cũng sử dụng thanh ghi này.
* Thanh ghi BX (thanh ghi cơ sở - Base register)
Thanh ghi này không chỉ thực hiện thao tác dữ liệu mà còn thường chứa địa chỉ cơ sở của một bảng, được sử dụng cho lệnh XLAT để chuyển đổi giá trị AL thành một giá trị tương ứng trong bảng BX.
* Thanh ghi CX (thanh ghi đếm - Count register)
Việc xây dựng chương trình lặp trở nên đơn giản nhờ vào thanh ghi CX, với CX hoạt động như bộ đếm vòng lặp (REP, LOOP) Trong khi đó, thanh ghi CL được sử dụng làm bộ đếm cho các lệnh dịch và quay bit.
* Thanh ghi DX (thanh ghi dữ liệu - Data register)
DX và AX được sử dụng trong phép nhân và chia số 16 bit, trong khi DX cũng lưu trữ địa chỉ cổng cho các lệnh vào/ra dữ liệu trực tiếp (IN/OUT) Ngoài ra, các thanh ghi đoạn bao gồm SC, DS, ES và SS.
Khối BIU của vi xử lý 8088 sử dụng địa chỉ 20 bit, cho phép phân biệt 1.048.576 ô nhớ, tương đương với không gian địa chỉ 1 Mbyte Trong không gian bộ nhớ 1 Mb này, cần chia thành các đoạn khác nhau, bao gồm đoạn chứa chương trình, đoạn chứa dữ liệu và kết quả trung gian, cùng với một vùng nhớ đặc biệt được gọi là ngăn xếp.
Bộ vi xử lý 8088 sở hữu các thanh ghi 16 bit được gọi là thanh ghi đoạn (Segment Register), bao gồm SC, DS, ES và SS, có nhiệm vụ chỉ ra địa chỉ đầu của các đoạn trong bộ nhớ Mỗi đoạn có dung lượng tối đa 64 Kb, và các đoạn này có thể nằm cách nhau hoặc trùm lên nhau trong không gian bộ nhớ.
Địa chỉ của ô nhớ đầu tiên trong một đoạn được xác định bởi thanh ghi, gọi là địa chỉ cơ sở Các ô nhớ khác trong cùng đoạn được tính bằng cách cộng thêm một giá trị gọi là địa chỉ lệch (offset) vào địa chỉ cơ sở Địa chỉ vật lý (20bit) của một ô nhớ được tính theo công thức: Địa chỉ vật lý = Địa chỉ đoạn * 10h + thanh ghi lệch (offset).
Địa chỉ logic trong máy tính được biểu diễn dưới dạng Segment: Offset, và chỉ những ô nhớ được xác định bởi 4 đoạn này mới có thể được truy cập Các thanh ghi con trỏ và chỉ số bao gồm SI, DI, SP và BP.
Trong 8088 có 3 thanh ghi con trỏ và 2 thanh ghi chỉ số 16 bit Các thanh ghi này (trừ
Các thanh ghi như IP có thể hoạt động như thanh ghi đa năng, nhưng mỗi thanh ghi lại có ứng dụng chính được ngầm định cho các đoạn mã tương ứng Cụ thể, thanh ghi BP (con trỏ cơ sở - Base Pointer) được sử dụng chủ yếu để quản lý địa chỉ trong ngăn xếp, giúp truy cập các tham số và biến cục bộ trong các hàm.
BP luôn trỏ vào một dữ liệu nằm trong đoạn ngăn xếp SS Địa chỉ cụ thể SS:BP được xác định như trên.
Thanh ghi SP (con trỏ ngăn xếp) kết hợp với SS để truy cập vào đoạn ngăn xếp, luôn trỏ đến đỉnh hiện tại của ngăn xếp trong đoạn SS với địa chỉ cụ thể là SS:SP Bên cạnh đó, thanh ghi SI (chỉ số nguồn) cũng đóng vai trò quan trọng trong việc xử lý dữ liệu.
SI chỉ vào dữ liệu trong đoạn dữ liệu DS mà địa chỉ cụ thể tương ứng với DS:SI.
Bằng cách tăng nội dung của SI chúng ta có thể truy nhập dễ dàng đến ô nhớ liên tiếp.
* Thanh ghi DI (chỉ số đích – Destination Index)
DI chỉ đến dữ liệu trong đoạn dữ liệu DS, với địa chỉ cụ thể được xác định bởi DS:DI Một số lệnh, được gọi là thao tác chuỗi, sử dụng DI để truy cập các ô nhớ được định địa chỉ.
ES. d Thanh ghi con trỏ lệnh: IP
Các thanh ghi bộ nhớ được sử dụng để truy cập dữ liệu và lệnh trong bộ vi xử lý 8088, với thanh ghi CS chứa địa chỉ lệnh tiếp theo và IP chứa địa chỉ offset của lệnh đó Mỗi khi một lệnh được thực hiện, thanh ghi IP sẽ được cập nhật Thanh ghi cờ là thanh ghi 16 bit, trong đó 9 bit được sử dụng để thể hiện trạng thái của bộ vi xử lý tại một thời điểm nhất định trong quá trình thực hiện chương trình, được gọi là các cờ như OF, DF, IF, TF, SF, ZF, AF, PF và CF.
CF (Carry Flag): được thiết lập khi phép toán thực hiện có nhớ hoặc có vay mượn
PF (Parity Flag): được thiết lập khi kết quả của phép toán có tổng số bit có giá trị 1 là một số chẵn (ở phần thấp của kết quả)
AF ( Auxiliary Flag): được thiết lập khi có nhớ từ “bít có trọng số lớn nhất ở phần thấp” sang “ bít có trọng số nhỏ nhất ở phần cao”.
ZF (Zero Flag): được thiết lập khi kết quả bằng 0
SF (Sign Flag): được thiết lập khi bit MSB (bit dấu) của kết quả có giá trị 1
OF (Overflow Flag): được thiết lập khi kết quả nằm ngoài giới hạn cho phép
TF (Trace Flag) : nếu bit này có giá trị 1 thì bộ vi xử lý cho phép thực hiện từng bước chương trình.
IF (Interrupt Flag):nếu bit này có giá trị 1 thì bộ vi xử lý cho phép ngắt cứng có thể thực hiện.
Kiến trúc RISC
Kiến trúc CISC (Complex Instruction Set Computer) đã ra đời từ những năm 1960, khi người ta nhận thấy rằng các chương trình dịch gặp khó khăn trong việc sử dụng các thanh ghi Việc thực hiện vi lệnh nhanh hơn so với lệnh truyền thống đã chỉ ra nhu cầu giảm độ dài chương trình Do đó, các kiểu ô nhớ như ô nhớ - ô nhớ và ô nhớ - thanh ghi được ưu tiên, dẫn đến sự phát triển của các lệnh phức tạp với nhiều kiểu định vị Kết quả là, lệnh có chiều dài thay đổi, khiến việc sử dụng bộ điều khiển vi chương trình trở nên hiệu quả hơn.
Bảng II.6 trình bày các đặc tính của một số máy CISC tiêu biểu, cho thấy cả ba máy đều có điểm chung là sở hữu nhiều lệnh với chiều dài khác nhau Điều này cho phép nhiều cách thực hiện lệnh và sử dụng nhiều vi chương trình.
Tiến bộ trong lĩnh vực mạch tích hợp (IC) và kỹ thuật dịch chương trình đã khiến các nhận định trước đây cần được xem xét lại, đặc biệt khi có khảo sát định lượng về việc sử dụng tập lệnh của các máy CISC.
Bảng 2-1 Đặc tính một vài máy CISC
Vào đầu những năm 1980, khái niệm về máy tính với tập lệnh rút gọn RISC đã được giới thiệu, nhấn mạnh sự tương đồng trong việc sử dụng thanh ghi và ô nhớ giữa các vi chương trình và chương trình Các máy RISC chủ yếu dựa vào một tập lệnh thiết kế đơn giản với chiều dài cố định, cho phép thực hiện kỹ thuật ống dẫn một cách hiệu quả Máy RISC sử dụng phương pháp thực hiện lệnh thanh ghi - thanh ghi, giúp dễ dàng giải mã và tối ưu hóa hiệu suất.
Chỉ có các lệnh ghi hoặc đọc ô nhớ mới cho phép thâm nhập vào ô nhớ.
Bảng II.7 trình bày ba mẫu máy RISC đầu tiên: IBM 801, RISC1 của Patterson từ Berkeley và MIPS của Hennessy từ Stanford Cả ba mẫu máy này đều sử dụng bộ điều khiển bằng mạch điện mà không có ô nhớ vi chương trình, có độ dài lệnh cố định là 32 bits, thi hành lệnh theo kiểu thanh ghi - thanh ghi và chỉ bao gồm một số ít lệnh.
Bảng 2-2 Đặc tính của ba mẫu đầu tiên máy RISC
Bộ xử lý IBM801 RISC1 MIPS
Dung lượng bộ nhớ vi 0 0 0 chương trình
32 32 32 Độ dài lệnh (tính bằng bít)
ECL MSI NMOS VLSI NMOS VLSI
Cách thực hiện Thanhghi-Thanh Thanh ghi– Thanh Thanhghi-Thanh ghi ghi ghi
Tóm lại, ta có thể định nghĩa mạch xử lý RISC bởi các tính chất sau:
- Có một số ít lệnh (thông thường dưới 100 lệnh )
- Có một số ít các kiểu định vị (thông thường hai kiểu: định vị tức thì và định vị gián tiếp thông qua một thanh ghi)
- Có một số ít dạng lệnh (một hoặc hai)
- Các lệnh đều có cùng chiều dài
- Chỉ có các lệnh ghi hoặc đọc ô nhớ mới thâm nhập vào bộ nhớ
- Dùng bộ tạo tín hiệu điều khiển bằng mạch điện để tránh chu kỳ giải mã các vi lệnh làm cho thời gian thực hiện lệnh kéo dài
- Bộ xử lý RISC có nhiều thanh ghi để giảm bớt việc thâm nhập vào bộ nhớ trong
Ngoài ra các bộ xử lý RISC đầu tiên thực hiện tất cả các lệnh trong một chu kỳ máy
Bộ xử lý RISC có các lợi điểm sau :
Diện tích của bộ xử lý trong bộ điều khiển giảm đáng kể từ 60% cho các bộ xử lý CISC xuống chỉ còn 10% cho các bộ xử lý RISC Sự giảm thiểu này cho phép tích hợp thêm nhiều thành phần bên trong bộ xử lý, bao gồm các thanh ghi, cổng vào ra và bộ nhớ cache.
Tốc độ tính toán cao đạt được nhờ giải mã lệnh đơn giản, sử dụng nhiều thanh ghi để giảm thiểu việc truy cập bộ nhớ, và áp dụng kỹ thuật ống dẫn hiệu quả, trong đó các lệnh có thời gian thực hiện đồng nhất và cùng dạng.
- Thời gian cần thiết để thiết kế bộ điều khiển là ít Điều này góp phần làm giảm chi phí thiết kế
- Bộ điều khiển trở nên đơn giản và gọn làm cho ít rủi ro mắc phải sai sót mà ta gặp thường trong bộ điều khiển
Trước những điều lợi không chối cãi được, kiến trúc RISC có một số bất lợi:
+ Các chương trình dài ra so với chương trình viết cho bộ xử lý CISC Điều này do các nguyên nhân sau :
Cấm thâm nhập bộ nhớ cho tất cả các lệnh ngoại trừ lệnh đọc và ghi, dẫn đến việc cần sử dụng nhiều lệnh để hoàn thành một công việc cụ thể.
+ Cần thiết phải tính các địa chỉ hiệu dụng vì không có nhiều cách định vị
+ Tập lệnh có ít lệnh nên các lệnh không có sẵn phải được thay thế bằng một chuỗi lệnh của bộ xử lý RISC
Các chương trình dịch phải đối mặt với nhiều thách thức do số lượng lệnh hạn chế, dẫn đến ít lựa chọn trong việc diễn dịch các cấu trúc của chương trình gốc Hơn nữa, sự cứng nhắc của kỹ thuật ống dẫn cũng góp phần làm gia tăng khó khăn trong quá trình này.
+ Có ít lệnh trợ giúp cho ngôn ngữ cấp cao
Các bộ xử lý CISC hỗ trợ mạnh mẽ cho các ngôn ngữ lập trình cao cấp nhờ vào tập lệnh phức tạp Hãng Honeywell đã phát triển một máy tính với một lệnh tương ứng cho mỗi động từ trong ngôn ngữ COBOL Những tiến bộ gần đây đã cho phép tích hợp một bộ xử lý RISC cơ bản cùng với nhiều toán tử chuyên dụng vào trong một vi mạch.
Thí dụ, bộ xử lý 860 của Intel bao gồm một bộ xử lý RISC, bộ làm tính với các số lẻ và một bộ tạo tín hiệu đồ hoạ.
4.2 Các kiểu định vị trong các bộ xử lý
Trong bộ xử lý RISC, lệnh số học và logic được thực hiện theo kiểu thanh ghi và tức thì, trong khi lệnh đọc và ghi vào bộ nhớ sử dụng các kiểu định vị khác Kiểu định vị thanh ghi là phổ biến nhất trong các bộ xử lý RISC, với các toán hạng nguồn và kết quả đều nằm trong thanh ghi mà số thứ tự được chỉ định trong lệnh Hình II.5 minh họa một số ví dụ về kiểu thanh ghi và dạng lệnh tương ứng trong một số kiến trúc RISC.
Bảng 2-3 Dạng lệnh trong kiểu định vị thanh ghi – thanh ghi cho một số CPU RISC
MIPS Opcode nguồn 1 nguồn 2 Đích Dịch Hàm
5 SPARC Opcode Đích Opcode nguồn 1 0 Khoảng nguồn2
Power Opcode Đích nguồn 1 nguồn2 Opcode mở rộng 0
ALPHA Opcode nguồn 1 nguồn 2 3 0 Opcode Đích
6 5 5 1 mở rộng 7 5 b Kiểu định vị tức thì
Trong kiểu này, toán hạng là một số có dấu, được chứa ngay trong lệnh Hình II.6 cho ta vài ví dụ về dạng lệnh kiểu tức thì.
Bảng 2-4 Dạng lệnh trong kiểu định vị thanh ghi - tức thì cho một số CPU RISC
MIPS Opcode Thanh ghi Thanh Số có dấu (toán hạng tức thì)
SPARC Opcode Thanh Opcode Thanh 1 Toán hạng tức thì có
2 ghi 6 ghi 1 dấu đích nguồn
ALPHA Opcode Thanh ghi Toán 1 Opcode mở Thanh
6 nguồn hạng tức rộng ghi
Power Opcode Thanh ghi Thanh Toán hạng tức thì có dấu
5 c Kiểu định vị trực tiếp
Trong kiểu này, địa chỉ trực tiếp được sử dụng để nhập các biến, với toán hạng nằm ngay trong lệnh Ví dụ, kiểu định vị biến của hệ điều hành cho thấy rằng người sử dụng không có quyền truy cập vào các biến này.
Bảng 2-5 Dạng lệnh thâm nhập bộ nhớ trong của một số kiến trúc RISC
MIPS Opcode Thanh ghi Thanh ghi độ dờicó dấu
SPARC Opcod Thanh Opcode Thanh ghi 1 độ dời có dấu e ghi số 6 địa chỉ 1
ALPHA Opcode Thanh ghi Thanh ghi Độ dời có dấu
Power Opcode Thanh ghi Thanh ghi Độ dời có dấu
Kiểu định vị gián tiếp bằng thanh ghi và độ dời là một đặc trưng của kiến trúc RISC, trong đó địa chỉ toán hạng được tính bằng cách cộng giá trị trong thanh ghi với độ dời Kiểu định vị trực tiếp là một trường hợp đặc biệt của kiểu này khi thanh ghi có giá trị bằng 0 Trong các bộ xử lý RISC, thanh ghi R0 hoặc R31 thường được thiết lập ở mức điện thế thấp (0), cho phép thực hiện định vị trực tiếp khi sử dụng thanh ghi đó.
Một vài bộ xử lý RISC, ví dụ bộ xử lý PowerPC, dùng kiểu định vị này.
Toán hạng
Kiểu của toán hạng thường được đưa vào trong mã tác vụ của lệnh Có bốn kiểu toán hạng được dùng trong các hệ thống:
- Kiểu dạng số: số nguyên, dấu chấm động,
- Kiểu dạng chuỗi ký tự: ASCII, EBIDEC,
- Kiểu dữ liệu logic: các bit, cờ,
Tuy nhiên một số ít máy tính dùng các nhãn để xác định kiểu toán hạng.
Toán hạng xác định thường có chiều dài cố định, bao gồm các kích thước như byte (8 bit), nửa từ máy tính (16 bit), từ máy tính (32 bit) và đôi máy tính (64 bit) Đặc biệt, kiến trúc PA của Hewlett Packard (HP) cho phép tính toán với các số thập phân BCD Ngoài ra, một số bộ xử lý cũng có khả năng xử lý các chuỗi ký tự.
Câu hỏi ôn tập và bài tập
1 Các thành phần của một hệ máy tính đơn giản
2.Nêu chức năng của các thanh ghi cơ sở và thanh ghi cờ.
3 Chỉ ra giá trị của các cờ trạng thái sau khi thực hiện các lệnh sau: MOV
MOV DL,D7h; ADD AL,DL;
3 Nêu định nghĩa kiến trúc máy tính
4 Mô tả các kiểu thi hành lệnh của một máy tính Tại sao kiểu thi hành lệnh thanh ghi – thanh ghi được dùng nhiều hiện tại?
5 Mô tả mỗi kiểu định vị trong các kiểu định vị mà một CPU có thể có Cho CPU RISC, các kiểu định vị nào thường được dùng nhất?
6 Sự khác biệt giữa CPU RISC và CPU CISC?
TỔ CHỨC BỘ XỬ LÝ
Đường đi của dữ liệu
Phần đường đi của dữ liệu bao gồm bộ phận thực hiện tính toán và logic (ALU), các mạch dịch, các thanh ghi và các kết nối giữa các bộ phận Đây là nơi chứa hầu hết các trạng thái của bộ xử lý Ngoài các thanh ghi tổng quát, phần này còn bao gồm nhiều thành phần quan trọng khác.
Thanh ghi đếm chương trình (PC: Program Counter),
Thanh ghi trạng thái(SR: Status Register),
Thanh ghi đệm TEMP (temporary),
Các thanh ghi địa chỉ bộ nhớ (MAR : Memory Address Register),
Thanh ghi số liệu bộ nhớ (MBR: Memory Buffer Register).
Bộ đa hợp (MUX: Multiplexor) là thành phần quan trọng trong hệ thống máy tính, đóng vai trò là điểm cuối của kênh dữ liệu giữa CPU và bộ nhớ Nhiệm vụ chính của MUX là lập thời biểu truy cập bộ nhớ từ CPU và các kênh dữ liệu, bao gồm hệ thống BUS nguồn (S1, S2) và bus kết quả (Dest).
Phần đường đi dữ liệu có nhiệm vụ chính là đọc các toán hạng từ các thanh ghi tổng quát, thực hiện các phép tính trong ALU và lưu trữ kết quả Các thanh ghi tổng quát thường có số lượng 32 và được kết nối với các mạch chốt A, B, C tại ngã vào và ngã ra.
Phần đường đi của dữ liệu chiếm phân nửa diện tích của bộ xử lý nhưng là phần dễ thiết kế và cài đặt trong bộ xử lý.
Hình 3-1 Tổ chức của một bộ xử lý điển hình ( các đường không liên tục là các đường điều khiển)
ALU (Arthmetical and Logical Unit):bộ phận tính toán số học và logic.
PC: Program Counter :thanh ghi đếm chương trình.
SR: Status Register : thanh ghi trạng thái
Temp: temporary :thanh ghi đệm
MAR: Memory address Register :thanh ghi địa chỉ nhớ
MBR: Memory Buffer Register :thanh ghi số liệu bộ nhớ
MUX: Multiplexor : Bộ đa hợp
Interrupt Request): yêu cầu ngắt, một đường hoặc môt tín hiệu được kích hoạt bởi thiết bị ngoại vi để phát ra một ngắt cứng tới CPU.
Bộ điều khiển
Bộ điều khiển tạo tín hiệu điều khiển di chuyển dữ liệu giữa các thanh ghi và bus, cũng như điều khiển các tác vụ của các bộ phận chức năng như ALU và bộ nhớ Ngoài ra, bộ điều khiển còn phát sinh tín hiệu để đảm bảo lệnh được thực hiện theo thứ tự Việc cài đặt bộ điều khiển có thể thực hiện bằng hai phương pháp: sử dụng mạch điện tử hoặc vi chương trình (microprogram).
2.1 Bộ điều khiển mạch điện tử Để hiểu được vận hành của bộ điều khiển mạch điện tử, chúng ta xét đến mô tả về Automate trạng thái hữu hạn: có nhiều hệ thống hay nhiều thành phần mà ở mỗi thời điểm xem xét đều có một trạng thái (state) Mục đích của trạng thái là ghi nhớ những gì có liên quan trong quá trình hoạt động của hệ thống Vì chỉ có một số trạng thái nhất định nên nói chung không thể ghi nhớ hết toàn bộ lịch sử của hệ thống, do vậy nó phải được thiết kế cẩn thận để ghi nhớ những gì quan trọng Ưu điểm của hệ thống (chỉ có một số hữu hạn các trạng thái) đó là có thể cài đặt hệ thống với một lượng tài nguyên cố định Chẳng hạn, chúng ta có thể cài đặt Automate trạng thái hữu hạn trong phần cứng máy tính ở dạng mạch điện hay một dạng chương trình đơn giản, trong đó, nó có khả năng quyết định khi chỉ biết một lượng giới hạn dữ liệu hoặc bằng cách dùng vị trí trong đoạn mã lệnh để đưa ra quyết định.
Hình 3-2 Nguyên tắc vận hành của bộ điều khiển dùng mạch điện
Hình 3-2 minh họa nguyên tắc hoạt động của bộ điều khiển bằng mạch điện, trong đó các đường điều khiển từ phần đường đi số liệu là các ngã ra của một hoặc nhiều Automate trạng thái hữu hạn Các ngã vào của Automate bao gồm thanh ghi lệnh, nơi chứa lệnh cần thi hành và thông tin từ bộ đường đi số liệu Dựa trên cấu hình các đường vào và trạng thái hiện tại, Automate sẽ xác định trạng thái tương lai cùng với các đường ra tương ứng Automate có thể được cài đặt dưới dạng một hoặc nhiều mạch mảng logic lập trình được (PLA) hoặc các mạch logic ngẫu nhiên.
Kỹ thuật điều khiển này rất hiệu quả và dễ áp dụng khi các lệnh có độ dài cố định và định dạng đơn giản Phương pháp này thường được sử dụng trong các bộ xử lý RISC.
2.2 Bộ điều khiển vi chương trình:
Hình 3-3: Nguyên tắc vận hành của bộ điều khiển vi chương trình
Sơ đồ nguyên tắc của bộ điều khiển vi chương trình cho thấy cách các đường dây điều khiển tương ứng với các ngã ra của vi lệnh trong bộ nhớ Việc điều khiển tác vụ của lệnh mã máy được thực hiện thông qua chuỗi vi lệnh, trong đó một vi máy tính bên trong bộ điều khiển thực hiện từng lệnh này Vi máy tính đảm nhận vai trò điều khiển thực hiện tuần tự các vi lệnh để hoàn thành nhiệm vụ của lệnh mã máy.
Các tác vụ của lệnh mã máy cũng tuỳ thuộc vào trạng thái của phần đường đi dữ liệu.
Bộ điều khiển vi chương trình được sử dụng phổ biến trong các bộ xử lý CISC, nổi bật với tập lệnh phức tạp và chiều dài lệnh đa dạng Việc cài đặt lệnh mã máy thông qua vi chương trình giúp đơn giản hóa quy trình và nâng cao hiệu quả Hơn nữa, sai sót trong thiết kế automat điều khiển cũng dễ dàng được sửa đổi.
Diễn tiến thi hành lệnh mã máy
Việc thi hành một lệnh mã máy có thể chia thành 5 giai đoạn:
+ Đọc lệnh (IF: Instruction Fetch)
+ Giải mã lệnh (ID: Instruction Decode)
+ Thi hành lệnh (EX: Execute)
+ Thâm nhập bộ nhớ trong hoặc nhảy (MEM: Memory access)
+ Lưu trữ kết quả (RS: Result Storing)
Mỗi giai đoạn được thi hành trong một hoặc nhiều chu kỳ xung nhịp. a Đọc lệnh:
Bộ đếm chương trình (PC) được đưa vào thanh ghi địa chỉ bộ nhớ (MAR) Lệnh được đọc từ bộ nhớ trong tại các ô nhớ có địa chỉ trong MAR và sau đó được chuyển vào thanh ghi lệnh (IR) Tiếp theo, quá trình giải mã lệnh diễn ra, cùng với việc đọc các thanh ghi nguồn.
Lệnh được giải mã Kế đó các thanh ghi Rs1 và Rs2 được đưa vào A và B Thanh ghi
PC được tăng lên để chỉ tới lệnh kế đó. Để hiểu rõ giai đoạn này, ta lấy dạng thức của một lệnh làm tính tiêu biểu sau đây:
Các thanh ghi nguồn Rs1 và Rs2 được sử dụng tuỳ theo tác vụ, kết quả được đặt trong thanh ghi đích Rd.
Việc giải mã lệnh diễn ra đồng thời với việc đọc các thanh ghi Rs1 và Rs2, do chúng luôn được đặt ở cùng vị trí trong lệnh.
Tuỳ theo loại lệnh mà một trong ba nhiệm vụ sau đây được thực hiện:
- Liên hệ tới bộ nhớ
MAR ← Địa chỉ do ALU tính tuỳ theo kiểu định vị (Rs2).
MBR ← Rs1 Địa chỉ hiệu dụng do ALU tính được đưa vào MAR và thanh ghi nguồn Rs1 được đưa vào MBR để được lưu vào bộ nhớ trong.
Ngã ra ALU ← Kết quả của phép tính
ALU thực hiện phép tính xác định trong mã lệnh, đưa kết quả ra ngã ra.
Ngã ra ALU ← Địa chỉ lệnh tiếp theo do ALU tính.
ALU kết hợp địa chỉ của PC với độ dời để tạo ra địa chỉ đích và xuất ra địa chỉ này Trong trường hợp phép nhảy có điều kiện, thanh ghi trạng thái sẽ được kiểm tra để quyết định có cộng độ dời vào PC hay không Cuối cùng, quá trình thâm nhập bộ nhớ trong hoặc thực hiện phép nhảy diễn ra.
Giai đoạn này thường chỉ được dùng cho các lệnh nạp dữ liệu, lưu giữ dữ liệu và lệnh nhảy.
- Tham khảo đến bộ nhớ:
MBR ← M[MAR] hoặc M[MAR] ← MBR
Số liệu được nạp vào MBR hoặc lưu vào địa chỉ mà MAR trỏ đến.
If (điều kiện), PC ← ngả ra ALU
Khi điều kiện đúng, giá trị từ ALU sẽ được nạp vào thanh ghi PC Đối với các lệnh nhảy không điều kiện, giá trị từ ALU luôn được cập nhật vào thanh ghi PC Cuối cùng, quá trình lưu trữ kết quả được thực hiện.
Rd ← Ngã ra ALU hoặc Rd ← MBR
Lưu trữ kết quả trong thanh ghi đích.
Ngắt (INTERRUPT)
Ngắt quãng là sự kiện ngẫu nhiên trong máy tính, làm gián đoạn tính tuần tự của chương trình bằng cách tạo ra lệnh nhảy Hầu hết các nhà sản xuất máy tính, như IBM và INTEL, sử dụng thuật ngữ "ngắt quãng" để mô tả hiện tượng này, trong khi một số nhà sản xuất khác lại dùng các từ như "ngoại lệ", "lỗi" hoặc "bẩy".
Bộ điều khiển của CPU là phần phức tạp nhất trong kiến trúc máy tính, với ngắt quãng là thách thức lớn nhất Để nhận diện ngắt quãng trong quá trình thực hiện lệnh, cần điều chỉnh chu kỳ xung nhịp, điều này có thể tác động đến hiệu suất hoạt động của máy tính.
Ngắt quãng được phát triển để phát hiện sai sót trong tính toán số học và áp dụng cho các hiện tượng thời gian thực Hiện nay, ngắt quãng được sử dụng cho nhiều công việc khác nhau.
+ Ngoại vi đòi hỏi nhập hoặc xuất số liệu
+ Người lập trình muốn dùng dịch vụ của hệ điều hành
+ Cho một chương trình chạy từng lệnh
+ Làm điểm dừng của một chương trình
+ Báo tràn số liệu trong tính toán số học
+ Trang bộ nhớ thực sự không có trong bộ nhớ
+ Báo vi phạm vùng cấm của bộ nhớ
+ Báo dùng một lệnh không có trong tập lệnh
+ Báo phần cứng máy tính bị hư
Mặc dù ngắt quãng không xảy ra thường xuyên, bộ xử lý cần được thiết kế để lưu giữ trạng thái trước khi phục vụ ngắt Sau khi hoàn thành chương trình phục vụ ngắt, bộ xử lý phải khôi phục trạng thái để tiếp tục công việc Để đơn giản hóa thiết kế, một số bộ xử lý chỉ chấp nhận ngắt sau khi lệnh hiện tại được thực hiện xong Khi ngắt xảy ra, bộ xử lý thực hiện các bước cần thiết để xử lý tình huống này.
1 Thực hiện xong lệnh đang làm
2 Lưu trữ trạng thái hiện tại
3 Nhảy đến chương trình phục vụ ngắt
4 Khi chương trình phục vụ chấm dứt, bộ xử lý khôi phục lại trạng thái cũ của nó và tiếp tục thực hiện chương trình mà nó đang thực hiện khi bị ngắt
Kỹ thuật ống dẫn (PIPELINE)
5.1 Ống dẫn Đây là một kỹ thuật làm cho các giai đoạn khác nhau của nhiều lệnh được thi hành cùng một lúc.
Trong quá trình thực hiện lệnh, mỗi lệnh được xử lý trong 5 giai đoạn chính, bao gồm: lấy lệnh (IF: Instruction Fetch), giải mã (ID: Instruction Decode), thi hành (EX: Execute), thâm nhập bộ nhớ (MEM: Memory Access) và lưu trữ kết quả (RS: Result Storing) Mỗi giai đoạn này diễn ra trong cùng một chu kỳ xung nhịp, đảm bảo tính đồng bộ và hiệu quả trong việc thực hiện các lệnh.
Bảng 3-1 cho thấy chỉ trong một chu kỳ xung nhịp, bộ xử lý có thể thực hiện một lệnh (bình thường lệnh này được thực hiện trong 5 chu kỳ).
Bảng 3-1.Các giai đoạn khác nhau của nhiều lệnh được thi hành cùng một lúc
So với phương pháp xử lý tuần tự truyền thống, trong đó 5 lệnh cần 25 chu kỳ xung nhịp, kỹ thuật ống dẫn cho phép thực hiện 5 lệnh chỉ trong 9 chu kỳ xung nhịp.
Như vậy kỹ thuật ống dẫn làm tăng tốc độ thực hiện các lệnh Tuy nhiên kỹ thuật ống dẫn có một số ràng buộc:
Để thực hiện từng giai đoạn của lệnh, cần có một mạch điện riêng biệt, vì tất cả các giai đoạn được thực hiện đồng thời Trong bộ xử lý không sử dụng kỹ thuật ống dẫn, bộ làm toán ALU có thể được dùng để cập nhật thanh ghi PC, địa chỉ toán hạng bộ nhớ, và địa chỉ ô nhớ mà chương trình cần nhảy tới, đồng thời thực hiện các phép tính trên các toán hạng, vì những phép tính này có thể xảy ra ở nhiều giai đoạn khác nhau.
Để thực hiện các tác vụ đọc và viết hiệu quả, cần có nhiều thanh ghi khác nhau Như thể hiện trong hình 3-4, trong một chu kỳ xung nhịp, có thể thấy đồng thời hai tác vụ đọc (ID, MEM) đang diễn ra.
Trong hệ thống máy tính sử dụng kỹ thuật ống dẫn, kết quả từ một tác vụ trước đó có thể trở thành toán hạng nguồn cho một tác vụ khác, dẫn đến những thách thức bổ sung mà chúng ta sẽ thảo luận trong phần tiếp theo.
- Cần phải giải mã các lệnh một cách đơn giản để có thể giải mã và đọc các toán hạng trong một chu kỳ duy nhất của xung nhịp
Để thực hiện lệnh số học dài nhất với số giữ, cần thiết phải có các bộ làm tính ALU hiệu quả, nhằm hoàn thành trong thời gian ngắn hơn một chu kỳ của xung nhịp.
- Cần phải có nhiều thanh ghi lệnh để lưu giữ lệnh mà chúng ta phải xem xét cho mỗi giai đoạn thi hành lệnh
- Cuối cùng phải có nhiều thanh ghi bộ đếm chương trình PC để có thể tái tục các lệnh trong trường hợp có ngắt quãng
5.2 Khó khăn trong kỹ thuật ống dẫn
Trong quá trình thi hành lệnh trên máy tính sử dụng kỹ thuật ống dẫn, có nhiều yếu tố có thể cản trở việc thực hiện hiệu quả kỹ thuật này Những yếu tố đó bao gồm việc thiếu các mạch chức năng cần thiết, tình huống khi một lệnh phụ thuộc vào kết quả của lệnh trước đó, và các lệnh nhảy có thể gây gián đoạn trong chu trình thực hiện.
Có ba loại khó khăn chính trong hệ thống: khó khăn do cấu trúc, khó khăn do số liệu và khó khăn do điều khiển Khó khăn do cấu trúc xảy ra khi thiếu các bộ phận chức năng thiết yếu, như trong máy tính sử dụng kỹ thuật ống dẫn cần nhiều ALU, PC và thanh ghi lệnh IR Những khó khăn này có thể được khắc phục bằng cách bổ sung các bộ phận chức năng cần thiết và hiệu quả.
Lấy ví dụ trường hợp các lệnh liên tiếp sau:
Lệnh 1: ADD R1, R2, R3 Lệnh 2: SUB R4, R1, R5 Lệnh 3: AND R6, R1, R7 Lệnh 4: OR R8, R1, R9
Hình 3-4 minh họa rằng kết quả R1 từ lệnh 1 chỉ có thể được sử dụng cho lệnh 2 sau giai đoạn MEM của lệnh 1, trong khi R1 lại được áp dụng cho lệnh 2 trong giai đoạn EX của lệnh 1 Ngoài ra, R1 cũng được sử dụng cho các lệnh 3 và 4.
Để giải quyết khó khăn do số liệu, một bộ phận phần cứng được sử dụng để chuyển kết quả từ ngã vào ALU trực tiếp vào một trong các thanh ghi ngã vào, như minh họa trong hình 3-5.
Hình 3-5 ALU với bộ phận phần cứng đưa kết quả tính toán trở lại ngã vào
Khi bộ phận phần cứng nhận thấy kết quả từ ALU được sử dụng cho phép toán hạng trong danh sách, nó sẽ kích hoạt mạch đa hợp để đưa đầu ra của ALU vào đầu vào của chính nó hoặc vào đầu vào của một đơn vị chức năng khác nếu cần thiết Điều này có thể gây ra một số khó khăn trong quá trình điều khiển.
Các lệnh thay đổi tính thi hành theo cách tuần tự, khiến cho PC tăng đều sau mỗi lệnh, gây khó khăn trong việc điều khiển Những lệnh này bao gồm lệnh nhảy đến một địa chỉ tuyệt đối trong một thanh ghi hoặc lệnh nhảy đến một địa chỉ tương đối so với địa chỉ hiện tại của bộ đếm chương trình (PC) Các lệnh nhảy này có thể có hoặc không có điều kiện.
Trong trường hợp đơn giản nhất, tác vụ nhảy không thể xác định trước giai đoạn giải mã Nếu lệnh nhảy bắt đầu ở chu kỳ C, lệnh mà chương trình đang thực hiện sẽ ở cuối giai đoạn giải mã ID Đối với lệnh nhảy tương đối, cần cộng độ dời trong thanh ghi lệnh IR vào thanh ghi PC Việc tính toán địa chỉ này chỉ được thực hiện trong giai đoạn ID, với điều kiện phải có một mạch công việc riêng biệt.
Vậy trong trường hợp lệnh nhảy không điều kiện, lệnh mà chương trình nhảy đến bắt đầu thực hiện ở chu kỳ C+2 nếu lệnh nhảy bắt đầu ở chu kỳ C.
Đối với các lệnh nhảy có điều kiện, cần phải tính toán điều kiện Thông thường, các kiến trúc RISC lưu trữ kết quả so sánh vào thanh ghi trạng thái hoặc thanh ghi tổng quát Trong cả hai trường hợp, việc đọc điều kiện tương đương với việc đọc thanh ghi, và quá trình đọc thanh ghi có thể được thực hiện trong nửa chu kỳ cuối của giai đoạn ID.
Trong các lệnh nhảy có điều kiện, một tình huống phức tạp hơn có thể xảy ra khi so sánh hai thanh ghi, chỉ thực hiện lệnh nhảy khi kết quả so sánh đúng Việc tính toán các đại lượng logic không thể hoàn thành trong nửa chu kỳ, dẫn đến việc kéo dài thời gian thực hiện lệnh nhảy có điều kiện Do đó, người ta thường tránh những trường hợp này để duy trì hiệu suất tối ưu của máy tính.
Siêu ống dẫn
Máy tính sử dụng kỹ thuật siêu ống dẫn bậc n bằng cách chia các giai đoạn của kỹ thuật ống dẫn đơn giản thành n giai đoạn con, mỗi giai đoạn thực hiện trong thời gian Tc/n Kỹ thuật này cho phép thực hiện n lệnh trong mỗi chu kỳ Tc, nâng cao hiệu suất hoạt động Hình 3-6 minh họa ví dụ về siêu ống dẫn bậc 2, so sánh với siêu ống dẫn đơn giản, cho thấy sự cải tiến rõ rệt trong việc sử dụng thời gian chu kỳ Tc.
2 lệnh thay vì làm1 lệnh trong máy dùng kỹ thuật ống dẫn bình thường
Trong máy tính siêu ống dẫn, tốc độ thực hiện lệnh đạt được bằng cách thực hiện một lệnh trong thời gian Tc/n Tuy nhiên, siêu ống dẫn gặp phải một số bất lợi, bao gồm thời gian thực hiện ngắn Tc/n cho mỗi giai đoạn con và độ trễ lớn khi thi hành lệnh nhảy Cụ thể, nếu lệnh thứ i là một lệnh nhảy tương đối, lệnh này sẽ được giải mã trong giai đoạn ID, và địa chỉ nhảy đến sẽ được tính trong giai đoạn EX Kết quả là, lệnh phải nhảy tới là lệnh thứ i+4, dẫn đến việc trì hoãn 3 lệnh thay vì chỉ 1 lệnh như trong kỹ thuật ống dẫn thông thường.
Hình 3-6 so sánh siêu ống dẫn bậc 2 với siêu ống dẫn đơn giản, cho thấy rằng trong khoảng thời gian Tc, máy sử dụng siêu ống dẫn bậc 2 có khả năng thực hiện 2 lệnh thay vì chỉ 1 lệnh như ở siêu ống dẫn đơn giản.
Câu hỏi ôn tập và bài tập
1 Các thành phần và nhiệm vụ của đường đi dữ liệu?
2 Thế nào là ngắt? Các giai đoạn thực hiện ngắt của CPU
3 Vẽ hình để mô tả kỹ thuật ống dẫn Kỹ thuật ống dẫn làm tăng tốc độ CPU lên bao nhiêu lần (theo lý thuyết)? Tại sao trên thực tế sự gia tăng này lại ít hơn?
4 Các điều kiện mà một CPU cần phải có để tối ưu hoá kỹ thuật ống dẫn Giải thích từng điều kiện
5 Các khó khăn trong kỹ thuật ống dẫn và cách giải quyết khó khăn này
BỘ NHỚ
Các loại bộ nhớ
Bộ nhớ máy tính chứa chương trình, bao gồm lệnh và dữ liệu, và được phân loại thành nhiều loại khác nhau Bộ nhớ trong (RAM) là bộ nhớ truy cập ngẫu nhiên, được chế tạo từ chất bán dẫn, trong khi bộ nhớ chỉ đọc (ROM) là loại bộ nhớ không thể thay đổi Ngoài ra, bộ nhớ ngoài bao gồm các thiết bị lưu trữ như đĩa cứng, đĩa mềm, băng từ, trống từ, các loại đĩa quang và thẻ nhớ.
Bộ nhớ RAM là loại bộ nhớ cho phép đọc và ghi dữ liệu với thời gian tương đương, bất kể vị trí của các ô nhớ Mỗi ô nhớ có địa chỉ riêng, thường là một byte (8 bit), nhưng hệ thống có thể xử lý nhiều byte (2, 4, hoặc 8 byte) cùng lúc Đặc trưng của RAM bao gồm dung lượng, tổ chức (số ô nhớ và số bit mỗi ô), thời gian thâm nhập (thời gian từ khi đưa ra địa chỉ đến khi đọc được nội dung) và chu kỳ bộ nhớ (thời gian giữa hai lần thâm nhập liên tiếp).
1.1 Bộ nhớ trong a Phân loại
Có thể phân loại các vi mạch nhớ bán dẫn thành bộ nhớ cố định, bán cố định và bộ nhớ ghi/đọc như sơ đồ (hình 4-1)
Bộ nhớ cố định ROM
Bộ nhớ bán cố định
Bộ nhớ Ghi/Đọc được
Bộ nhớ định trình mặt nạ
Bộ nhớ Bộ nhớ Bộ nhớ
Hình 4-1.Phân loại các bộ nhớ bán dẫn
Bộ nhớ được chia thành hai loại chính: bộ nhớ cố định (ROM - Read Only Memory) và bộ nhớ có thể đọc/ghi (RAM - Random Access Memory) ROM, được ghi sẵn khi chế tạo, không thể ghi lại sau đó, trong khi PROM (Programmable ROM) cho phép ghi một lần bởi người sử dụng RAM có hai loại: SRAM (Static RAM), thường được xây dựng trên các mặt lật điện tử, và DRAM (Dynamic RAM), dựa trên điện tích ở tụ điện và cần phục hồi nội dung thường xuyên.
Giữa ROM và RAM có một lớp bộ nhớ bán cố định, bao gồm EPROM (Erasable Programmable ROM) có thể ghi và xóa bằng tia cực tím, cùng với EEPROM (Electric Erasable Programmable ROM) có khả năng xóa bằng dòng điện DRAM thường đáp ứng nhu cầu về dung lượng lớn, trong khi SRAM được sử dụng khi cần tốc độ truy xuất nhanh Tuy nhiên, cả hai loại bộ nhớ này đều mất thông tin khi nguồn điện bị cắt Do đó, các chương trình khởi động máy vi tính như BIOS cần được lưu trữ trên bộ nhớ ROM, được gọi là ROM BIOS.
Nguyên lý hoạt động của các linh kiện nhớ bán dẫn
ROM (Read Only Memory) là loại chíp nhớ chỉ cho phép người dùng đọc dữ liệu mà không thể ghi lại Nội dung của ROM được lập trình sẵn trong quá trình sản xuất và giữ nguyên trạng thái cố định (non-volatile) ROM kiểu mặt nạ được chế tạo trên phiến silicon, tạo ra các tiếp giáp bán dẫn điện một chiều như diode tại các điểm giao nhau trên ma trận dây dẫn hàng và cột, theo ví dụ trong hình 4.2.
Các điểm vắt chéo chứa diode cung cấp thông tin 0, trong khi các điểm khác mang thông tin 1 Khi bộ giải mã địa chỉ chọn một hàng ở mức thấp, lối ra của các dây bit sẽ phản ánh giá trị được lưu trữ trong chip nhớ tại hàng đó Ví dụ, chip lưu trữ 4 từ dữ liệu, mỗi từ 3 bit như 010, 101, 001 và 100 Khi bộ giải mã chọn địa chỉ hàng Y1, lối ra của chip nhớ sẽ hiển thị từ dữ liệu 101.
Hình 4-2 Bộ nhớ ROM diode
PROM (Programmable ROM) là loại ROM khả trình cho phép ghi thông tin chỉ một lần Khi sản xuất, các điểm vắt chéo được kết nối với diode hoặc transistor nối tiếp với cầu chì Để ghi thông tin mức logic "1", người dùng chỉ cần cho dòng điện đủ lớn đi qua, làm cháy đứt cầu chì tại điểm vắt chéo tương ứng, từ đó loại bỏ diode hoặc transistor tại đó Vì vậy, PROM chỉ có khả năng ghi thông tin một lần mà không thể xóa được.
Hình 4-3.Cầu chì trong các điểm vắt chéo với diode, transistor lưỡng cực và transistor trường
EPROM (Erasable PROM) là loại chip nhớ PROM có khả năng xoá và ghi thông tin nhiều lần, được chế tạo theo nguyên tắc riêng biệt Mỗi bit nhớ trong EPROM là một transistor MOS với cửa nổi, sử dụng công nghệ FAMOST (Floating gate avalanche injection MOS transistor) Dữ liệu được ghi vào chip thông qua các xung điện có độ dài khoảng 50ms và điện áp +20V, được áp dụng giữa cực cửa và máng của transistor Do cửa nổi được cách điện tốt, sau khi kết thúc xung điện, các điện tử giữ vai trò là phần tử mang thông tin không còn đủ năng lượng để thoát ra khỏi lớp cách điện.
Thông tin trong chip EPROM được lưu trữ lâu dài, thậm chí sau khi ngừng cấp điện, với khả năng duy trì dữ liệu ít nhất là 10 năm Để xóa thông tin, cần chiếu ánh sáng tử ngoại mạnh vào chip, giúp các điện tử hấp thụ năng lượng và nhảy lên mức năng lượng cao hơn, từ đó rời khỏi vùng cửa nổi Chip EPROM thiết kế một cửa sổ bằng thủy tinh thạch anh cho phép ánh sáng tử ngoại đi qua khi cần xóa dữ liệu.
EEPROM (Electrically EPROM ) là loại EPROM xoá được bằng phương pháp điện Việc nạp các điện tử cho cửa nổi được thực hiện như cách ở EPROM Để xoá EEPROM
Có một lớp kênh màng mỏng ôxít giữa vùng cửa nổi và cực máng, đóng vai trò quan trọng trong việc cách điện Mặc dù các lớp cách điện không hoàn hảo, nhưng khả năng điện tích thấm qua lớp phân cách là thấp Tuy nhiên, khả năng này tăng lên khi bề dày lớp giảm và hiệu điện thế giữa hai điện cực tăng Để phóng điện tích trong vùng cửa nổi, một điện thế -20V được áp dụng vào cực cửa điều khiển và cực máng, khiến các điện tử âm trong cửa nổi chảy về cực máng qua kênh màng ôxít, từ đó xoá bỏ dữ liệu lưu giữ.
RAM (Bộ nhớ truy cập ngẫu nhiên) là loại bộ nhớ có khả năng ghi và đọc dữ liệu, nhưng thông tin sẽ bị mất khi nguồn điện bị ngắt RAM được chia thành hai loại chính: RAM động (DRAM) và RAM tĩnh (SRAM) Cấu trúc của RAM rất đơn giản, giúp nâng cao hiệu suất xử lý dữ liệu trong các thiết bị điện tử.
Hình 4-4 Vận hành của bộ nhớ RAM
(Wi, Wj, R/W là các tín hiệu điều khiển)
Hình 4-5.Hình dáng bên ngoài một số loại RAM
Tuỳ theo công nghệ chế tạo, người ta phân
RAM tĩnh, được sản xuất bằng công nghệ ECL (CMOS và BiCMOS), sử dụng 6 transistor MOS cho mỗi bit nhớ Dữ liệu trong SRAM được lưu trữ khi có nguồn điện cung cấp, cho phép đọc nhanh mà không làm mất nội dung ô nhớ Thời gian truy cập của SRAM được xác định bởi chu kỳ bộ nhớ.
RAM động sử dụng kỹ thuật MOS, trong đó mỗi bit nhớ bao gồm một transistor và một tụ điện Giống như SRAM, dữ liệu chỉ được lưu trữ khi bộ nhớ được cấp điện Việc ghi nhớ phụ thuộc vào việc duy trì điện tích trong tụ điện, do đó, khi đọc một bit nhớ, nội dung của bit đó sẽ bị mất Sau mỗi lần đọc, bộ điều khiển bộ nhớ cần ghi lại nội dung vừa đọc, dẫn đến chu kỳ bộ nhớ động ít nhất gấp đôi thời gian truy cập ô nhớ Thông tin trong bit nhớ chỉ được lưu tạm thời, vì tụ điện sẽ phóng điện và cần làm tươi bộ nhớ sau mỗi 2μs Quá trình làm tươi bộ nhớ bao gồm việc đọc và ghi lại nội dung của tất cả các ô nhớ, và được thực hiện tự động bởi một vi mạch bộ nhớ.
SDRAM (Synchronous DRAM – DRAM đồng bộ), một dạng DRAM đồng bộ bus bộ nhớ Tốc độ SDRAM đạt từ 66-133MHz (thời gian thâm nhập bộ nhớ từ 75ns-150ns).
DDR SDRAM (Double Data Rate SDRAM) là phiên bản nâng cấp của SDRAM, cho phép truyền tải dữ liệu nhanh gấp đôi so với SDRAM nhờ vào việc thực hiện hai lần truyền tải trong một chu kỳ bộ nhớ Tốc độ của DDR SDRAM dao động từ 200 đến 400MHz.
RDRAM (Rambus RAM) là một loại DRAM tiên tiến, hoạt động theo kỹ thuật mới so với SDRAM, với khả năng truyền dữ liệu đồng bộ theo một hướng Mỗi kênh bộ nhớ RDRAM hỗ trợ tối đa 32 chip DRAM, được kết nối tuần tự trên module RIMM (Rambus Inline Memory Module) Dữ liệu được truyền giữa các mạch điều khiển và từng chip riêng lẻ, không phải giữa các chip Bus bộ nhớ RDRAM là đường dẫn liên tục qua các chip và module, với mỗi module có các chân vào và ra ở hai đầu đối diện Để duy trì kết nối đường truyền, các khe cắm không có RIMM cần được gắn một module liên tục Tốc độ hoạt động của RDRAM dao động từ 400-800MHz.
Các cấp bộ nhớ
Các đặc tính quan trọng của bộ nhớ bao gồm lượng thông tin lưu trữ, thời gian thâm nhập bộ nhớ, chu kỳ bộ nhớ và giá tiền mỗi bit nhớ Những yếu tố này giúp phân loại các cấp bộ nhớ từ bộ nhớ nhanh với dung lượng nhỏ đến bộ nhớ chậm với dung lượng lớn.
Các đặc tính chính của các cấp bộ nhớ tạo ra hai mức quan trọng: mức cache - bộ nhớ trong và mức bộ nhớ ảo, bao gồm cả bộ nhớ trong và không gian cấp phát trên đĩa cứng.
IV.4) Cách tổ chức này trong suốt đối với người sử dụng Người sử dụng chỉ thấy duy nhất một không gian định vị ô nhớ, độc lập với vị trí thực tế của các lệnh và dữ liệu cần thâm nhập.
Hình 4-7 Hai mức bộ nhớ
Các cấp bộ nhớ hỗ trợ lập trình viên trong việc tối ưu hóa hiệu suất với chi phí hợp lý Do bộ nhớ nhanh thường có giá cao, nên chúng được tổ chức thành nhiều cấp độ: cấp thấp có dung lượng nhỏ nhưng tốc độ cao và đắt, trong khi cấp cao có dung lượng lớn hơn nhưng chậm hơn Mục tiêu là tạo ra một hệ thống bộ nhớ tiết kiệm chi phí nhưng vẫn đạt tốc độ gần như bộ nhớ cao nhất Các cấp bộ nhớ thường được lồng ghép, cho phép dữ liệu trong mỗi cấp có thể truy cập từ các cấp thấp hơn, đảm bảo tính khả dụng và hiệu quả.
Mỗi cấp bộ nhớ trong hệ thống đều có dung lượng lớn hơn cấp trên, đồng thời ánh xạ một phần địa chỉ ô nhớ của mình vào địa chỉ ô nhớ của cấp trên với tốc độ nhanh hơn Để đảm bảo hiệu quả, các cấp bộ nhớ cần có cơ chế quản lý và kiểm tra các địa chỉ ánh xạ một cách chặt chẽ.
Truy cập dữ liệu trong bộ nhớ
Cache là bộ nhớ nhanh lưu trữ lệnh và dữ liệu thường xuyên sử dụng Quyết định lựa chọn lệnh và dữ liệu để đưa vào cache dựa trên các nguyên tắc nhất định.
Một chương trình mất 90% thời gian thi hành lệnh của nó để thi hành 10% số lệnh của chương trình.
Nguyên tắc thâm nhập dữ liệu tương tự như nguyên tắc thâm nhập lệnh, nhưng hiệu quả kém hơn Có hai nguyên tắc chính cần lưu ý: nguyên tắc về không gian và nguyên tắc về thời gian.
Nguyên tắc về thời gian trong hệ thống xử lý thâm nhập cho thấy khả năng thâm nhập của các ô nhớ trong tương lai gần Các chương trình thường được thiết kế với phần chính là phần thực thi nhiều nhất, trong khi các phần phụ chỉ xử lý các trường hợp ngoại lệ Thêm vào đó, dữ liệu thường có cấu trúc rõ ràng, và thường chỉ một phần dữ liệu được thâm nhập nhiều nhất.
Nguyên tắc về không gian cho thấy rằng khi bộ xử lý truy cập vào một ô nhớ, khả năng cao là nó cũng sẽ truy cập vào ô nhớ kế tiếp, nhờ vào việc các lệnh được sắp xếp theo thứ tự.
Tổ chức bộ nhớ các cấp hiệu quả giúp lưu trữ các lệnh và dữ liệu thường xuyên sử dụng trong bộ nhớ cache, từ đó nâng cao hiệu suất hoạt động của máy tính một cách đáng kể.
3.1 Truy nhập bộ nhớ và thiết bị vào/ ra
Thời gian một chu kỳ của xung đồng hồ trong hệ thống được gọi là một trạng thái Một trạng thái được xác định từ sườn âm của xung đồng hồ này đến sườn âm của xung tiếp theo.
Chu kỳ máy hay chu kỳ bus là quá trình cơ bản của bộ vi xử lý trong việc truyền tải dữ liệu trên bus Chu kỳ máy bao gồm hai giai đoạn: giai đoạn đầu là thời gian địa chỉ, trong đó vi xử lý gửi địa chỉ đích cùng tín hiệu xác định loại chu kỳ bus; giai đoạn hai là thời gian số liệu, khi bộ xử lý kiểm tra tín hiệu sẵn sàng từ đơn vị trao đổi thông tin để thực hiện việc cấp hoặc nhận dữ liệu.
Có 4 loại chu kỳ máy cơ bản: đọc bộ nhớ, viết bộ nhớ, đọc vào/ra, viết vào/ra.
Chu kỳ lệnh là khoảng thời gian mà vi xử lý cần để nhận và thực hiện một lệnh Mỗi chu kỳ lệnh bao gồm một hoặc nhiều chu kỳ máy.
Tóm lại, các trạng thái tạo nên một chu kỳ máy và các chu kỳ máy tạo nên một chu kỳ lệnh.
Trong nhiều trường hợp, trạng thái đợi xảy ra khi tốc độ truy cập bộ nhớ hoặc tốc độ xử lý dữ liệu của thiết bị ngoại vi chậm hơn tốc độ của vi xử lý Do đó, cần có phương pháp nhận biết và trì hoãn quá trình trao đổi dữ liệu để đảm bảo hiệu suất hoạt động.
Để giải quyết vấn đề này, một bên thông tin chỉ tiếp tục nhận hoặc phát dữ liệu khi nhận được tín hiệu sẵn sàng READY từ bộ nhớ hoặc ngoại vi Nếu bộ nhớ hoặc ngoại vi hoạt động chậm, tín hiệu READY sẽ bị trì hoãn, dẫn đến việc không thể xử lý ngay lập tức và phải trải qua một số chu kỳ đồng hồ Mỗi khoảng thời gian chờ này được gọi là chu kỳ đợi hay trạng thái đợi Rõ ràng, càng có nhiều trạng thái đợi trong hệ thống máy tính thì hiệu suất xử lý càng bị giảm.
3.2 Truy nhập bộ nhớ chính
Trong chế độ MAX, sơ đồ kết nối các chip cho thấy 8288 phát ra tín hiệu điều khiển cho BUS và một số bộ đệm trong bộ nhớ tạm thời Bộ điều khiển nhớ đảm bảo việc đọc/viết dữ liệu đến địa chỉ mong muốn một cách chính xác.
Hình 4-9 minh họa giản đồ xung của các tín hiệu trên bus hệ thống trong chu kỳ đọc hoặc viết bộ nhớ Trong giản đồ xung theo thời gian, có bốn tín hiệu chính liên quan đến chu kỳ bus: xung nhịp từ máy phát nhịp đồng hồ CLK, tín hiệu địa chỉ/trạng thái, tín hiệu địa chỉ/số liệu, và tín hiệu sẵn sàng READY, cho biết việc đọc số liệu đã hoàn thành.
A15-A0 bus res D15-D0 ổn định Địa chỉ Số liệu vào bộ nhớ
Số liệu D15 – D0 Địa chỉ trạng thái
Hình 4-9 Các tín hiệu trên bus hệ thống trong một chu kỳ đọc hoặc viết bộ nhớ a Chu kỳ đọc bộ nhớ
Nhìn trên hình (a) ta thấy chu kỳ đọc bộ nhớ bao gồm các quá trình xảy ra như sau:
Vi xử lý gửi tín hiệu điều khiển S2, S1, S0 đến bộ điều khiển bus để kích hoạt bộ đệm số liệu và địa chỉ Địa chỉ từ A19 đến A0 được đưa vào bộ đệm địa chỉ Tín hiệu HBE xác định byte hoặc từ đang được đọc, trong khi tín hiệu READY giảm xuống mức thấp và chỉ tăng lên khi bộ nhớ đã hoàn tất việc cung cấp số liệu.
T2: Chuyển hướng truyền số liệu trên bus Đường BHE và A19 – A16 chuyển sang thông tin trạng thái Các đường A15-A0 chuyển từ mode địa chỉ sang mode số liệu.
Chu trình truyền số liệu bắt đầu khi dữ liệu chưa ổn định trên D15-D0, dẫn đến sự xuất hiện của các hiệu trạng thái S7-S3 Khi toàn bộ dữ liệu được truyền vào bộ nhớ, bộ điều khiển nhớ sẽ nâng mức điện thế ở dây READY và đồng bộ hóa nó bằng cách sử dụng máy nhịp 8284 để phát ra xung READY đồng bộ với xung nhịp của vi xử lý Quá trình này cho phép dữ liệu được truyền từ bộ đệm bộ nhớ đến bộ đệm số liệu, và vi xử lý sẽ khởi phát việc nhận dữ liệu từ bộ đệm.
T4 là giai đoạn mà vi xử lý hoàn tất việc đọc số liệu sau chu kỳ Trong giai đoạn này, các bộ đệm bị vô hiệu hóa, tuy nhiên, vi xử lý vẫn tiếp tục phát tín hiệu trạng thái S7-S3 Khi T4 kết thúc, bus hệ thống sẽ trở lại trạng thái khởi phát.
Các tín hiệu trên hình (b) giống như ở chu kỳ đọc, ngoại trừ tín hiệu địa chỉ/ số liệu
T1: Các xử lý giống trên và chỉ có bộ điều khiển bus được tác động vì viết sốliệu.
BỊ NHẬP XUẤT
Đĩa từ
Mặc dù công nghệ mới liên tục phát triển và cho ra đời nhiều loại thiết bị lưu trữ dung lượng lớn, đĩa từ vẫn giữ vai trò quan trọng trong máy tính từ năm 1965 Đĩa từ thực hiện hai nhiệm vụ chính trong hệ thống máy tính.
- Lưu trữ dài hạn các tập tin
- Thiết lập một cấp bộ nhớ bên dưới bộ nhớ trong để làm bộ nhớ ảo lúc chạy chương trình.
Đĩa mềm đã dần bị thay thế bởi các thiết bị lưu trữ hiện đại với tính năng vượt trội hơn, vì vậy bài viết này chỉ tập trung vào đĩa cứng Tài liệu sẽ mô tả tổng quan về cấu tạo, cách hoạt động và những đặc điểm quan trọng của đĩa cứng.
Đĩa cứng bao gồm nhiều lớp đĩa kim loại, từ 1 đến 4 lớp, quay với tốc độ từ 3.600 đến 15.000 vòng mỗi phút Mỗi lớp đĩa có đường kính từ 1,3 inch đến 8 inch và được phủ một chất từ tính Mỗi mặt của lớp đĩa được chia thành nhiều rãnh đồng trục, với số lượng rãnh dao động từ 10.000 đến gần 30.000 Mỗi rãnh lại được chia thành nhiều cung, với số lượng cung trong một rãnh từ 64 đến 800, và cung là đơn vị nhỏ nhất mà máy tính có thể đọc hoặc viết, thường có kích thước khoảng 512 bytes Thông tin ghi trên mỗi cung bao gồm số thứ tự của cung, dữ liệu cùng mã sửa lỗi, và số thứ tự của cung tiếp theo.
Kỹ thuật ghi mật độ không đều cho phép tất cả các rãnh có cùng số cung, dẫn đến việc các cung ở rãnh xa trục quay có mật độ ghi thông tin thấp hơn so với các cung gần trục quay.
Hình 5-1 Cấu tạo của một đĩa cứng
Hình 5-2.Hình ảnh bên ngoài của ổ cứng
Công nghệ ghi với mật độ đều cho phép lưu trữ nhiều thông tin hơn ở các rãnh xa trục quay, ngày càng trở nên phổ biến nhờ sự phát triển của các chuẩn giao diện thông minh như SCSI.
Để đọc hoặc ghi thông tin trên đĩa cứng, một đầu đọc ghi di động được áp dụng lên mỗi mặt của từng lớp đĩa Các đầu đọc/ghi này được gắn vào một thanh, cho phép chúng di chuyển đồng thời trên đường bán kính của mỗi lớp đĩa, đảm bảo rằng tất cả các đầu đều nằm trên các rãnh có cùng bán kính Thuật ngữ “trụ” (cylinder) được sử dụng để chỉ tất cả các rãnh của các lớp đĩa có cùng bán kính, tạo thành một hình trụ.
Người dùng thường có nhu cầu đọc dữ liệu nhanh chóng từ ổ đĩa, vì vậy ổ đĩa thường có khả năng đọc nhiều hơn lượng dữ liệu cần thiết, được gọi là đọc trước Để xử lý những phức tạp trong quá trình kết nối và ngắt kết nối khi đọc hoặc ghi thông tin, cũng như thực hiện chức năng đọc trước, ổ đĩa cần được trang bị bộ điều khiển chuyên dụng.
Ngành công nghiệp chế tạo đĩa từ đang tập trung vào việc nâng cao dung lượng lưu trữ, với đơn vị đo lường là mật độ thông tin trên mỗi đơn vị bề mặt.
Bảng 5-1 Thông số kỹ thuật của đĩa cứng
Bảng thông số kỹ thuật đĩa cứng
Dung lượng tối đa Có thể đạt 500 GB
Số cung (Sectors -512 byte/sector) Xxx,xxx,xxx
Tốc độ quay đĩa (RPM) 3600-15000
Mật độ Có thể đạt 95 Gb/in
Mật độ rãnh (TPI-Max Track/Inch) Có thể đạt 120.000
Mật độ ghi BPI (Max Bits/Inch) Có thể đạt 702.000
Tốc độ dữ liệu tối đa (internal) Có thể đạt 900 Mb/s
Tốc độ truyền dữ liệu với ngoại vi Có thể đạt 320 Mb/s
Thời gian chuyển track R/W Có thể đạt 15 ms
Thời gian quay nửa vòng Có thể đạt 6 ms
Đĩa quang
Các thiết bị lưu trữ quang, ra đời vào năm 1978 từ sự hợp tác giữa Sony và Philips, rất phù hợp cho việc phát hành sản phẩm văn hóa và sao lưu dữ liệu trên các hệ thống máy tính hiện nay.
Kể từ năm 1980, công nghiệp đĩa quang đã phát triển mạnh mẽ trong hai lĩnh vực giải trí và lưu trữ dữ liệu máy tính Quá trình đọc thông tin dựa vào sự phản chiếu của tia laser năng lượng thấp từ lớp lưu trữ Bộ phận tiếp nhận ánh sáng phát hiện các điểm mà tia laser bị phản xạ mạnh hoặc biến mất do các vết khắc trên bề mặt đĩa Những tia phản xạ mạnh cho thấy tại điểm đó không có lỗ khắc, được gọi là điểm nền.
Bộ nhận ánh sáng trong ổ đĩa thu nhận các tia phản xạ và khuếch tán từ bề mặt đĩa, sau đó bộ vi xử lý chuyển đổi các mẫu sáng thành bit dữ liệu hoặc âm thanh Các lỗ trên CD có độ sâu 0,12 micron và rộng 0,6 micron, được khắc theo một track hình xoắn ốc với khoảng cách 1,6 micron giữa các vòng, tương đương khoảng 16.000 track/inch Các lỗ (pit) và nền (land) kéo dài từ 0,9 đến 3,3 micron, với track bắt đầu từ phía trong và kết thúc ở phía ngoài, tạo thành một đường khép kín quanh rìa đĩa 5mm Dữ liệu trên CD được lưu thành từng khối, mỗi khối chứa 2.352 byte, trong đó 304 byte dành cho thông tin về bit đồng bộ, bit nhận dạng (ID), mã sửa lỗi (ECC) và mã phát hiện lỗi (EDC), còn lại 2.048 byte chứa dữ liệu Tốc độ đọc chuẩn của CD-ROM là rất cao.
75 khối/s hay 153.600 byte/s hay 150KB/s (1X).
Dưới đây là một số loại đĩa quang thông dụng.
CD (Compact Disk) là một loại đĩa quang không thể xoá, chủ yếu được sử dụng trong ngành công nghiệp giải trí để lưu trữ âm thanh số hóa Đĩa có đường kính 12 cm và có khả năng phát nhạc liên tục khoảng 60 phút mà không bị dừng lại.
CD-ROM (Compact Disk Read Only Memory) là loại đĩa không thể xóa, được thiết kế để lưu trữ dữ liệu máy tính với đường kính 12 cm và dung lượng lưu trữ hơn 650 MB Khi ra mắt, CD-ROM đã được nạp sẵn nội dung và thường được sử dụng để chứa phần mềm cũng như các chương trình điều khiển thiết bị.
CD-R (CD-Recordable) là loại đĩa cho phép người dùng ghi dữ liệu một lần và đọc lại nhiều lần, nhưng không thể xóa dữ liệu đã ghi Trong khi đó, CD-RW (CD-Rewritable) cho phép người dùng ghi, xóa và ghi lại dữ liệu nhiều lần trên đĩa Cả hai loại đĩa đều chưa có thông tin khi mới được sản xuất.
DVD (Đĩa Video Kỹ Thuật Số - Đĩa Đa Năng Kỹ Thuật Số) được phát triển để phục vụ cho ngành công nghiệp giải trí, với khả năng lưu trữ hình ảnh video đã được số hóa Hiện nay, DVD được sử dụng phổ biến trong nhiều ứng dụng công nghệ thông tin Đĩa DVD có hai kích thước chính là 8cm và 12cm, và có thể chứa dữ liệu ở cả hai mặt, với dung lượng tối đa lên đến 17GB So với CD-ROM, DVD-ROM (loại đĩa chỉ đọc) có tốc độ đọc chuẩn (1X) đạt 1.3MB/s, tương đương với khoảng 9X của CD-ROM.
DVD-R (DVD-Recordable) cho phép người dùng ghi dữ liệu một lần và đọc nhiều lần, tương tự như đĩa DVD-ROM Mỗi đĩa chỉ có thể ghi trên một mặt, với dung lượng tối đa lên đến 4.7 GB.
DVD-RW (DVD-Rewritable) cho phép người dùng ghi, xóa và ghi lại dữ liệu nhiều lần, tương tự như đĩa DVD-ROM Đĩa này có khả năng ghi trên một mặt, với dung lượng tối đa lên tới 4.7 GB cho mỗi mặt đĩa.
Bảng 5-2 So sánh một số thông số của hai loại đĩa CDROM và DVDROM
Đĩa quang, với những đặc tính vượt trội và giá thành ngày càng giảm, trở thành phương tiện lý tưởng để phân phối phần mềm cho máy tính Bên cạnh đó, đĩa quang cũng được sử dụng để lưu trữ lâu dài dữ liệu, thay thế cho băng từ truyền thống.
Các loại thẻ nhớ
Thẻ nhớ flash hiện nay là công nghệ lưu trữ tiên tiến, sử dụng bộ nhớ bán dẫn EEPROM với cấu trúc gồm các hàng và cột Mỗi ô nhớ được tạo thành từ hai transistor: floating gate và control gate, với floating gate kết nối với hàng thông qua control gate Khi kết nối được thiết lập, bit có giá trị 1, và để chuyển sang giá trị 0, quy trình Fowler-Nordheim tunneling được áp dụng Tốc độ nhanh, yêu cầu dòng điện thấp và kích thước nhỏ gọn của thẻ nhớ đã giúp chúng trở thành lựa chọn phổ biến trong công nghệ lưu trữ và giải trí hiện đại.
Hình 5-4.Hình ảnh một số USB
Hình 5-5.Minh hoạ hai trạng thái của một bit nhớ trong thẻ nhớ
Băng từ
Băng từ và đĩa từ đều sử dụng công nghệ tương tự, nhưng có sự khác biệt quan trọng Trong khi việc truy cập dữ liệu trên đĩa từ diễn ra ngẫu nhiên, băng từ yêu cầu quy trình tuần tự, dẫn đến thời gian tìm kiếm thông tin trên băng từ lâu hơn Hơn nữa, đĩa từ có dung lượng hạn chế, trong khi băng từ có thể chứa nhiều cuộn băng, mang lại dung lượng lưu trữ rất lớn, lên tới hàng trăm GB Với chi phí thấp, băng từ vẫn được sử dụng phổ biến cho việc lưu trữ dữ liệu dự phòng.
Các băng từ có chiều rộng từ 0,38 cm đến 1,27 cm được cuộn lại và bảo quản trong hộp bảo vệ Dữ liệu trên băng từ được ghi theo cấu trúc với nhiều rãnh song song theo chiều dọc.
Có hai cách ghi dữ liệu lên băng từ:
Ghi nối tiếp là một kỹ thuật ghi dữ liệu trên băng từ, trong đó dữ liệu được ghi theo hình xoắn ốc Khi một rãnh ghi hoàn tất, băng từ sẽ quay ngược lại để đầu từ ghi dữ liệu trên rãnh tiếp theo theo hướng ngược lại Quá trình này tiếp tục cho đến khi băng từ được lấp đầy.
Ghi song song là phương pháp tăng tốc độ đọc-ghi dữ liệu trên băng từ bằng cách cho phép đầu đọc-ghi thực hiện thao tác trên nhiều rãnh kề nhau cùng lúc Mặc dù dữ liệu vẫn được ghi theo chiều dọc của băng từ, các khối dữ liệu được xem như được ghi trên các rãnh kề nhau Thông thường, số rãnh ghi đồng thời trên băng từ là 9, bao gồm 8 rãnh dữ liệu (1 byte) và 1 rãnh kiểm tra lỗi.
Các chuẩn về BUS
Số lượng và loại bộ phận vào/ra trong hệ thống xử lý thông tin không cần định trước, cho phép người sử dụng chọn thiết bị phù hợp với yêu cầu của họ Vào/ra là giao diện kết nối các thiết bị với hệ thống, giống như một bus mở rộng để thêm ngoại vi vào máy tính Các chuẩn kết nối giúp việc liên kết các ngoại vi vào máy tính trở nên dễ dàng, bất chấp việc các nhà thiết kế máy tính và ngoại vi có thể thuộc các công ty khác nhau Sự tồn tại của các chuẩn bus là cần thiết để đảm bảo rằng nếu nhà thiết kế tôn trọng các chuẩn này, các ngoại vi có thể kết nối một cách dễ dàng vào máy tính Chuẩn bus vào/ra quy định cách kết nối ngoại vi vào máy tính.
Các chuẩn bus vào/ra của máy tính phổ biến, như UNIBUS của PDP 11, chuẩn bus của IBM PC và AT, cùng các chuẩn hiện tại của Intel, thường trở thành tiêu chuẩn cho các hãng khác Để được công nhận, các chuẩn này cần phải được các tổ chức như ISO, ANSI và IEEE phê duyệt.
Một máy vi tính có thể có nhiều loại BUS như sau:
BUS bộ xử lý, hay còn gọi là Back side (BSB), là các đường truyền giữa vi xử lý và các mạch đệm trung gian, chủ yếu kết nối bộ xử lý với bộ nhớ cache ngoại L2 hoặc L3 BUS này hoạt động với tốc độ cao nhất trong các loại BUS, không bị tắc nghẽn, và bao gồm các BUS thành phần dữ liệu, địa chỉ và điều khiển Chẳng hạn, trong hệ thống Pentium, BUS xử lý có 64 đường dữ liệu, 32 đường địa chỉ và các đường điều khiển.
BUS hệ thống, hay còn gọi là front side bus (FSB), là thành phần quan trọng trong việc truyền thông tin giữa vi xử lý và bộ nhớ chính RAM, cũng như các ổ đĩa khác BUS này có thể là một phần của bus bộ xử lý hoặc được tách biệt bởi các mạch đệm chuyên dụng Trong các hệ thống có tốc độ đồng hồ cao, chip điều khiển bộ nhớ giúp kết nối giữa bus bộ xử lý nhanh và bộ nhớ chính có tốc độ truy xuất chậm hơn Do đó, tốc độ truyền thông tin trên bus hệ thống thường chậm hơn so với bus bộ xử lý.
BUS vào/ra, hay còn gọi là bus mở rộng, cho phép xử lý thông tin với các thiết bị ngoại vi và mở rộng tính năng cho hệ thống máy tính Các khe cắm mở rộng được kết nối với bus mở rộng, cho phép các bản mạch ghép nối được cắm vào Khi đề cập đến tiêu chuẩn của một loại bus mở rộng, điều này cũng đồng nghĩa với việc nói đến các khe cắm mở rộng và các card tương ứng.
Trong các máy vi tính hiện nay, nhiều thiết bị ngoại vi được tích hợp trực tiếp trên bo mạch chính Chẳng hạn, chúng thường có ít nhất hai bộ điều khiển chuẩn ghép nối ổ đĩa, bao gồm chuẩn IDE (cũ) và chuẩn SATA (sơ và thứ cấp).
Cable theo chuẩn SATA Power cable
Cable IDEHình 5-6 Cable dữ liệu và Cable điện
An toàn dữ liệu trong lưu trữ
Nhiều người thường tập trung vào việc bảo vệ thông tin trên đĩa từ, mà ít chú ý đến sự an toàn của thông tin trong bộ xử lý Thực tế, bộ xử lý có thể gặp sự cố mà không gây hại cho dữ liệu lưu trữ.
2 đĩa của máy tính bị hư có thể gây ra các thiệt hại rất to lớn
Một phương pháp hiệu quả để nâng cao độ an toàn của thông tin trên đĩa từ là sử dụng mảng đĩa từ, được biết đến với tên gọi Hệ thống đĩa dự phòng (RAID - Redundant Array of Independent Disks) Hệ thống này cho phép lưu trữ dữ liệu một cách an toàn hơn bằng cách phân phối thông tin qua nhiều đĩa, giúp giảm thiểu nguy cơ mất mát dữ liệu.
Independent Disks) Cách lưu trữ dư thông tin làm tăng giá tiền và sự an toàn (ngoại trừ
RAID 0) Cơ chế RAID có các đặc tính sau:
5 RAID là một tập hợp các ổ đĩa cứng (vật lý) được thiết lập theo một kỹ thuật mà hệ điều hành chỉ “nhìn thấy” chỉ là một ổ đĩa (logic) duy nhất
6 Với cơ chế đọc/ghi thông tin diễn ra trên nhiều đĩa (ghi đan chéo hay soi gương)
7 Trong mảng đĩa có lưu các thông tin kiểm tra lỗi dữ liệu; do đó, dữ liệu có thể được phục hồi nếu có một đĩa trong mảng đĩa bị hư hỏng
Tuỳ theo kỹ thuật thiết lập, RAID có thể có các mức sau:
RAID 0 : Thực ra, kỹ thuật này không nằm trong số các kỹ thuật có cơ chế an toàn dữ liệu
Khi thiết lập mảng RAID 0, ổ đĩa logic có dung lượng bằng tổng dung lượng của các ổ đĩa thành viên, cho phép người dùng có một ổ đĩa lớn hơn nhiều so với dung lượng thực tế Dữ liệu được ghi phân tán trên tất cả các đĩa, giúp tăng tốc độ đọc-ghi, vì thời gian này tỉ lệ nghịch với số lượng đĩa trong mảng Tính năng này rất hữu ích cho các ứng dụng yêu cầu hiệu suất cao như đa phương tiện và đồ họa Tuy nhiên, RAID 0 không có cơ chế bảo vệ dữ liệu, do đó, bất kỳ hư hỏng nào trên một ổ đĩa thành viên sẽ dẫn đến mất mát dữ liệu toàn bộ trong mảng Xác suất hư hỏng đĩa cũng tỉ lệ thuận với số lượng đĩa trong RAID.
0 RIAD 0 có thể được thiết lập bằng phần cứng (RAID controller) hay phần mềm (Stripped Applications)
RAID 1 (Mirror - Đĩa gương): Phương cách thông thường tránh mất thông tin khi ổ đĩa bị hư là dùng đĩa gương, tức là dùng 2 đĩa Khi thông tin được viết vào một đĩa, thì nó cũng được viết vào đĩa gương và như vậy luôn có một bản sao của thông tin Trong cơ chế này, nếu một trong hai đĩa bị hư thì đĩa còn lại được dùng bình thường Việc thay thế một đĩa mới (cung thông số kỹ thuật với đĩa hư hỏng) và phục hồi dữ liệu trên đĩa đơn giản Căn cứ vào dữ liệu trên đĩa còn lại, sau một khoảng thời gian, dữ liệu sẽ được tái tạo trên đĩa mới (rebuild) RAID 1 cũng có thể được thiết lập bằng phần cứng (RAID controller) hay phần mềm (Mirror Applications) với chi phí khá lớn, hiệu suất sử dụng đĩa không cao (50%).
RAID 2 : Dùng kỹ thuật truy cập đĩa song song, tất cả các đĩa thành viên trong RAID đều được đọc khi có một yêu cầu từ ngoại vi Một mã sửa lỗi (ECC) được tính toán dựa vào các dữ liệu được ghi trên đĩa lưu dữ liệu, các bit được mã hoá được lưu trong các đĩa dùng làm đĩa kiểm tra Khi có một yêu cầu dữ liệu, tất cả các đĩa được truy cập đồng thời Khi phát hiện có lỗi, bộ điều khiển nhận dạng và sửa lỗi ngay mà không làm giảm thời gian truy cập đĩa Với một thao tác ghi dữ liệu lên một đĩa, tất cả các đĩa dữ liệu và đĩa sửa lỗi đều được truy cập để tiến hành thao tác ghi Thông thường, RAID 2 dùng mã Hamming để thiết lập cơ chế mã hoá, theo đó, để mã hoá dữ liệu được ghi, người ta dùng một bit sửa lỗi và hai bit phát hiện lỗi RAID 2 thích hợp cho hệ thống yêu cầu giảm thiểu được khả năng xảy ra nhiều đĩa hư hỏng cùng lúc.
RAID 3: Dùng kỹ thuật ghi song song, trong kỹ thuật này, mảng được thiết lập với yêu cầu tối thiểu là 3 đĩa có các thông số kỹ thuật giống nhau, chỉ một đĩa trong mảng được dùng để lưu các thông tin kiểm tra lỗi (parity bit) Như vậy, khi thiết lập RAID 3, hệ điều hành nhận biết được một đĩa logic có dung lượng n-1/n (n: số đĩa trong mảng) Dữ liệu được chia nhỏ và ghi đồng thời trên n-1 đĩa và bit kiểm tra chẵn lẻ được ghi trên đĩa dùng làm đĩa chứa bit parity – chẵn lẻ đan chéo ở mức độ bít Bít chẵn lẻ là một bít mà người ta thêm vào một tập hợp các bít làm cho số bít có trị số 1 (hoặc 0) là chẵn (hay lẻ) Thay vì có một bản sao hoàn chỉnh của thông tin gốc trên mỗi đĩa, người ta chỉ cần có đủ thông tin để phục hồi thông tin đã mất trong trường hợp có hỏng ổ đĩa Khi một đĩa bất kỳ trong mảng bị hư, hệ thống vẫn hoạt động bình thường Khi thay thế một đĩa mới vào mảng, căn cứ vào dữ liệu trên các đĩa còn lại, hệ thống tái tạo thông tin Hiệu suất sử dụng đĩa cho cách thiết lập này là n-1/n RAID
3 chỉ có thể được thiết lập bằng phần cứng (RAID controller).
RAID 4: từ RAID 4 đến RAID 6 dùng kỹ thuật truy cập các đĩa trong mảng độc lập
Trong một mảng RAID, mỗi đĩa thành viên được truy xuất độc lập, cho phép hệ thống đáp ứng hiệu quả các yêu cầu song song từ các thiết bị ngoại vi Kỹ thuật này rất phù hợp cho các ứng dụng cần xử lý nhiều ngoại vi và yêu cầu tốc độ truyền dữ liệu cao.
RAID 4 là một hệ thống lưu trữ sử dụng một đĩa để chứa các bit kiểm tra được tính toán từ dữ liệu trên các đĩa dữ liệu Tuy nhiên, nhược điểm lớn nhất của RAID 4 là tình trạng nghẽn cổ chai xảy ra tại đĩa kiểm tra khi có nhiều yêu cầu đồng thời từ các thiết bị ngoại vi.
RAID 5: yêu cầu thiết lập giống như RAID 4, dữ liệu được ghi từng khối trên các đĩa thành viên, các bit chẵn lẻ được tính toán mức độ khối được ghi trải đều lên trên tất cả các ổ đĩa trong mảng Tương tự RAID 4, khi một đĩa bất kỳ trong mảng bị hư hỏng, hệ thống vẫn hoạt động bình thường Khi thay thế một đĩa mới vào mảng, căn cứ vào dữ liệu trên các đĩa còn lại, hệ thống tái tạo thông tin Hiệu suất sử dụng đĩa cho cách thiết lập này là n-1/n RAID
5 chỉ có thể được thiết lập bằng phần cứng (RAID controller) Cơ chế này khắc phục được khuyết điểm đã nêu trong cơ chế RAID 4.
RAID 6: Trong kỹ thuật này, cần có n+2 đĩa trong mảng Trong đó, n đĩa dữ liệu và
Hệ thống lưu trữ sử dụng hai đĩa riêng biệt để kiểm tra các khối dữ liệu Một trong hai đĩa áp dụng cơ chế kiểm tra tương tự như RAID 4 và 5, trong khi đĩa còn lại thực hiện kiểm tra độc lập theo một thuật toán riêng Nhờ đó, hệ thống có khả năng phục hồi dữ liệu ngay cả khi hai đĩa dữ liệu trong mảng gặp sự cố hỏng hóc.
Hiện nay, RAID 0, 1, 5 được sử dụng phổ biến trong các hệ thống lưu trữ dữ liệu Những giải pháp RAID này (trừ RAID 6) chỉ đảm bảo an toàn dữ liệu khi một đĩa trong mảng gặp sự cố Tuy nhiên, các hư hỏng dữ liệu do phần mềm hoặc lỗi của con người không được bảo vệ trong các giải pháp này Do đó, người dùng cần có kiến thức đầy đủ về hệ thống để đảm bảo hoạt động hiệu quả và an toàn cho các hệ thống thông tin.
Câu hỏi ôn tập và bài tập
1 Mô tả vận hành của ổ đĩa cứng Cách lưu trữ thông tin trong ổ đĩa cứng
2 Mô tả các biện pháp an toàn trong việc lưu trữ thông tin trong đĩa cứng
3 Nguyên tắc vận hành của đĩa quang Ưu khuyết điểm của các loại đĩa quang
4 Thông thường có bao nhiêu loại bus? Tại sao phải có các chuẩn cho các bus vào ra?
5 Giải thích việc nới rộng dãi thông bằng cách sử dụng các gói tin
6 Hệ thống đĩa dự phòng (RAID - Redundant Array of Independent Disks) theo kỹ thuật thiết lập có những mức nào? Trình bày từng mức đó?