(NB) Giáo trình Kiến trúc máy tính với mục tiêu giúp các bạn có thể trình bày lịch sử của máy tính, các thế hệ máy tính và cách phân loại máy tính; Mô tả thành phần cơ bản của kiến trúc máy tính, các tập lệnh; Các kiểu kiến trúc máy tính: mô tả kiến trúc, các kiểu định vị; Giải thích cấu trúc của bộ xử lý trung tâm: tổ chức, chức năng và nguyên lý hoạt động của các bộ phận bên trong bộ xử lý.
Các thế hệ máy tính
Khoảng thời gian Công nghệ
1 1940 – 1956 Đèn điện tử chân không(Vacuum Tubes
3 1964 – 1971 Mạch tích hợp (Integrated Circuits)
4 1971 – nay Vi xử lý (Microprocessors)
Hình 1.1 Thế hệ máy tính 1
Electronic Numerical Integrator and Computer
Do John Mauchly và John Presper Eckert ở Đại học Pennsylvania thiết kế Đặc điểm:
Dài 20 mét, cao 2,8 mét và rộng vài mét, nặng 30 tấn
18.000 đèn điện tử và 1.500 rơle
Xử lý theo số thập phân
Lập trình bằng cách thiết lập vị trí của các chuyển mạch và các cáp nối b.Máy tính von Neumann
(Princeton Institute for Advanced Studies)
Máy tính von Neumann là cơ sở cho kiến trúc máy tính hiện đại
Hình 1.2 Máy tính Von Neuman
Thay thế đèn điện tử bằng transistor lưỡng cực
Kích thước máy tính giảm, rẻ tiền hơn, tiêu tốn năng lượng ít hơn
Nổi tiếng nhất là máy PDP-1 của DEC
Ngôn ngữ lập trình cấp cao (FORTRAN) và hệ điều hành kiểu tuần tự (Batch Processing) được sử dụng
Hình 1.3 máy tính thế hệ 3
Nhiều transistor và các phần tử khác được tích hợp trên một chip bán dẫn Mạch tích hợp mật độ thấp SSI (Small Scale Integration) chứa vài chục transistor
Mạch thích hợp mật độ trung bình MSI (Medium Scale Integration) chứa vài trăm transistor
Máy tính đa chương trình và hệ điều hành chia thời gian được dùng
Hình 1.5 máy tính thế hệ 4
Mạch thích hợp mật độ rất cao VLSI (very large scale integrated) có thể sắp xếp hàng triệu transistor
Bộ vi xử lý (microprocessor) chứa cả phần thực hiện và phần điều khiển của bộ xử lý
Vi mạch điều khiển tổng hợp (chipset)
Các bộ nhớ bán dẫn, bộ nhớ cache, bộ nhớ ảo được dùng rộng rãi
Các kỹ thuật cải tiến tốc độ xử lý của máy tính đang ngày càng phát triển mạnh mẽ, bao gồm kỹ thuật ống dẫn (pipeline) giúp tăng cường hiệu suất xử lý, kỹ thuật vô hướng (super scalar) cho phép thực hiện nhiều lệnh song song, và xử lý song song mức độ cao nhằm tối ưu hóa khả năng xử lý đa nhiệm.
Phân loại máy tính
- Thiết bị di động (Portable Devices)
Là máy tính có công năng cao (high performance), cung cấp dịch vụ cho nhiều người dùng: mail, web, lưu trữ file, …
Máy chủ thường có nhiều vi xử lý (CPU), dung lượng bộ nhớ RAM lớn, ổ đĩa dung lượng lớn
Hình 1.6 các loại máy tính
Chúng tôi cung cấp nhiều lựa chọn và khả năng đa dạng, cho phép bạn tùy chọn nhiều loại thùng máy, nguồn, đĩa cứng, card màn hình và thiết bị ngoại vi khác nhau.
Thường được dùng để chạy các ứng dụng như soạn thảo văn bản, bảng tính và các ứng dụng mạng như email, duyệt web
Tương tự như máy tính để bàn nhưng có cấu hình cao hơn Được thiết kế để chạy các ứng dụng đặc biệt như CAD (Computer Aided Design)
Thường có khả năng đồ họa cao, có màn hình rộng hoặc nhiều màn hình
Có nhiều loại thiết bị di động khác nhau về kích thước, khả năng đồ họa và sức mạnh:
Máy PDA (Personal Digital Assistant) Điện thoại di động
Hình 1.9 Thiết bị di động
Thông tin và sự mã hóa thông tin
Trong lĩnh vực mật mã học, mã hóa là quá trình chuyển đổi thông tin từ dạng này sang dạng khác nhằm bảo vệ dữ liệu khỏi những người không có quyền truy cập Mặc dù mã hóa không hoàn toàn ngăn chặn việc thông tin bị đánh cắp, nhưng nó tạo ra một lớp bảo vệ quan trọng cho dữ liệu nhạy cảm.
13 cắp, có điều thông tin đó lấy về cũng không xài được, không đọc được hay hiểu được vì đã được làm biến dạng đi rồi
Nếu bạn có một bức thư tỏ tình muốn gửi cho cô đồng nghiệp ở phòng bên, nhưng lo ngại rằng nhiều người có thể nhìn thấy trước khi cô ấy nhận được, điều này sẽ làm bạn cảm thấy không thoải mái Ngay cả khi bạn đã giao thư tận tay cho cô ấy, vẫn có khả năng những người xung quanh sẽ tò mò và đọc bức thư đó.
Để tỏ tình một cách an toàn và bí mật, bạn nên mã hóa bức thư tỏ tình của mình theo cách mà chỉ bạn và cô gái đó hiểu, trong khi những người khác chỉ nhìn thấy một mớ ký tự rối rắm.
Mã hóa thông tin mang lại mức độ an toàn cao hơn, đặc biệt trong thời đại Internet hiện nay, khi dữ liệu phải đi qua nhiều trạm trung chuyển Nếu không được mã hóa, thông tin của bạn dễ bị kẻ xấu xem trộm và lợi dụng trong quá trình truyền tải.
Khi gửi tài liệu mật cho đồng nghiệp ở thành phố khác, việc mã hóa tài liệu là rất quan trọng Nếu không thực hiện mã hóa, đối thủ cạnh tranh có thể tiếp cận và nắm bắt kế hoạch kinh doanh bí mật của công ty bạn, dẫn đến mất doanh thu và thị trường.
Theo lý thuyết, mọi thông điệp mã hóa đều có thể được giải mã mà không cần thông tin về thuật toán hay khóa mã hóa, tuy nhiên, thời gian và nguồn lực tính toán cần thiết cho quá trình này là yếu tố quan trọng cần xem xét.
Đôi khi, việc giải mã một tài liệu đòi hỏi siêu máy tính hoạt động liên tục, nhưng thông tin giải mã có thể trở nên vô giá trị sau một thời gian Nếu người nhận nắm rõ thuật toán hoặc khóa mã hóa, họ có thể dễ dàng và nhanh chóng giải mã mà không gặp khó khăn nào.
1.3.2 Các loại mã hóa dữ liệu thông dụng
Hiện có 4 biện pháp mã hoá dữ liệu thông dụng: a.Mã hóa cổ điển
Mã hoá cổ điển là phương pháp đơn giản và lâu đời nhất trong lịch sử, không yêu cầu khóa bảo mật Chỉ cần người gửi và người nhận cùng hiểu thuật toán này là đủ để đảm bảo an toàn thông tin.
Sử dụng thuật toán thay thế ký tự trong câu văn bằng ký tự liền kề trong bảng chữ cái, ví dụ như từ “Tinh tế” sẽ trở thành “Ujoi uf” Người nhận chỉ cần thực hiện thao tác dịch ngược lại để hiểu nội dung ban đầu.
Giải pháp mã hóa này không an toàn vì nếu một người thứ ba nắm được thuật toán, thông tin sẽ không còn bảo mật Do đó, việc giữ bí mật thuật toán là rất quan trọng, nhưng không phải ai cũng có khả năng giữ bí mật này hoàn toàn Nếu thuật toán bị rò rỉ hoặc bị giải mã, chúng ta sẽ thất bại trong việc bảo vệ thông tin Một trong những phương pháp mã hóa là mã hóa một chiều (hash).
Phương pháp mã hóa này sử dụng hàm băm để chuyển đổi thông tin như mật khẩu thành chuỗi ký tự dài, giúp bảo mật dữ liệu mà không cần giữ nguyên bản gốc Khi bạn đăng nhập vào Tinh tế, mật khẩu của bạn sẽ được mã hóa bằng cách này.
Chuỗi mã hóa sẽ được lưu trữ trong cơ sở dữ liệu thay vì lưu mật khẩu thô, nhằm nâng cao tính bảo mật Nếu hacker xâm nhập vào dữ liệu, họ chỉ có thể thấy những chuỗi như FIiyXYB547bhvyuuUIbZ mà không biết được mật khẩu thật của bạn.
Mỗi khi bạn đăng nhập, hàm băm sẽ chuyển đổi mật khẩu của bạn thành một chuỗi ký tự và so sánh với dữ liệu trong cơ sở dữ liệu; nếu khớp, bạn sẽ được đăng nhập, nếu không, sẽ có thông báo lỗi Việc dịch ngược chuỗi này về mật khẩu gốc là không cần thiết.
Hàm băm (hash function) có nhiệm vụ chuyển đổi một chuỗi có độ dài bất kỳ thành một chuỗi ký tự có độ dài cố định Chẳng hạn, nếu quy định rằng chuỗi sau khi băm sẽ dài 10 ký tự, thì bất kể độ dài của đầu vào, kết quả luôn là 10 ký tự Một đặc điểm quan trọng của hàm băm là khi dữ liệu đầu vào giống nhau, kết quả băm cũng sẽ giống nhau Tuy nhiên, chỉ cần thay đổi một ký tự nhỏ, chuỗi kết quả sẽ hoàn toàn khác biệt.
Hash function được sử dụng để kiểm tra tính toàn vẹn của dữ liệu Ví dụ, khi gửi tập tin Word cho bạn, mình sẽ mã hóa một chiều và tạo ra chuỗi băm DFYUBUfyeufuefu Khi bạn tải tập tin về, nếu chuỗi băm cũng là DFYUBUfyeufuefu, điều đó có nghĩa là tập tin không bị can thiệp bởi hacker Ngược lại, nếu chuỗi băm khác, có thể quá trình truyền tải đã gặp lỗi hoặc dữ liệu đã bị thay đổi.
Thành phần cơ bản của một máy tính
Bộ xử lý trung tâm (CPU) là thành phần chính trong máy tính, chịu trách nhiệm xử lý dữ liệu và điều khiển các thiết bị đầu vào như chuột và bàn phím, cũng như thiết bị đầu ra như màn hình và máy in Tốc độ và hiệu suất của CPU là yếu tố quyết định quan trọng cho khả năng hoạt động của máy tính Về cấu trúc, CPU là một tấm mạch nhỏ, bao gồm một wafer silicon được bọc trong chip gốm và gắn vào bảng mạch.
Tốc độ CPU được đo bằng đơn vị hezt (Hz) hay gigahertz (GHz), giá trị của con số này càng lớn thì CPU hoạt động càng nhanh
Một hertz (Hz) tương đương với một dao động mỗi giây, trong khi một gigahertz (GHz) tương ứng với một tỷ dao động mỗi giây Tuy nhiên, tốc độ của CPU không chỉ được xác định bởi giá trị Hz hay GHz, vì mỗi nhà sản xuất CPU áp dụng các công nghệ khác nhau để cải thiện hiệu suất và tăng cường khả năng xử lý dữ liệu.
Một cách công bằng để so sánh các CPU khác nhau là dựa vào số lệnh mà chúng có thể thực hiện mỗi giây Thuật ngữ CPU thường bị sử dụng sai ở Việt Nam, khi nhiều người nhầm lẫn giữa CPU và thùng máy (case) của máy tính để bàn Thực tế, CPU chỉ là một con chip nhỏ bên trong, trong khi thùng máy chứa CPU, bo mạch chủ, RAM, ổ cứng, ổ quang và card đồ họa (nếu có).
RAM, hay còn gọi là bộ nhớ truy cập ngẫu nhiên, là loại bộ nhớ tạm thời giúp máy tính hoạt động hiệu quả Nó tạo ra không gian lưu trữ cần thiết cho các tác vụ và ứng dụng đang chạy, đảm bảo hiệu suất tối ưu cho hệ thống.
RAM không lưu trữ dữ liệu khi máy tính tắt, vì vậy dù có nhớ 18 thông tin, nó sẽ không giữ lại dữ liệu đã lưu trước đó.
RAM là bộ nhớ tạm thời giúp CPU xử lý dữ liệu nhanh chóng hơn, nhờ vào tốc độ truy xuất nhanh hơn nhiều lần so với ổ cứng và các thiết bị lưu trữ khác như thẻ nhớ hay đĩa quang.
Bộ nhớ RAM lớn giúp máy tính mở nhiều ứng dụng đồng thời mà không gặp tình trạng chậm chạp Thêm RAM cũng cải thiện hiệu suất của một số ứng dụng, mang lại trải nghiệm mượt mà hơn cho người dùng.
Dung lượng bộ nhớ RAM hiện nay được tính bằng gigabyte (GB), trong đó 1GB tương đương với 1 tỷ byte Hầu hết các máy tính thông dụng hiện tại đều có tối thiểu 2-4GB RAM, trong khi các mẫu máy cao cấp có thể sở hữu dung lượng RAM lên tới 16GB hoặc hơn.
Bộ nhớ RAM, tương tự như CPU, được cấu tạo từ các tấm wafer silicon mỏng, được bọc trong chip gốm và gắn trên bảng mạch Các chip nhớ RAM hiện tại được lắp đặt trên các bảng mạch gọi là DIMM (Dual In-Line Memory Module), nhờ vào việc chúng kết nối với bo mạch chủ qua hai đường riêng biệt.
2.1.3 Ổ cứng Ổ cứng là nơi lưu trữ hệ điều hành, phần mềm và mọi dữ liệu của bạn Khi tắt nguồn, mọi thứ vẫn còn đó nên bạn không phải cài lại phần mềm hay mất dữ liệu khi tắt mở máy tính Khi bật máy tính, hệ điều hành và ứng dụng sẽ được chuyển từ ổ cứng lên bộ nhớ RAM để chạy
Dung lượng lưu trữ của ổ cứng được đo bằng gigabyte (GB), với các ổ đĩa cứng thông thường hiện nay có thể chứa từ 500GB đến 1 terabyte (1.000GB) hoặc hơn Hầu hết các ổ cứng trên thị trường hiện nay là loại cơ khí truyền thống, sử dụng đĩa kim loại để lưu trữ dữ liệu bằng từ tính Ngoài ra, ổ cứng SSD (ổ cứng rắn) là một lựa chọn mới hơn, sử dụng chip nhớ thay vì phần quay cơ học, mang lại tốc độ đọc ghi nhanh hơn, hoạt động yên tĩnh và độ tin cậy cao hơn, mặc dù giá thành của chúng vẫn còn khá cao.
Một máy tính có thể đi kèm với một hoặc nhiều thiết bị đầu vào như chuột, touchpad, trackball (máy tính xách tay), bàn phím hay bảng vẽ
Màn hình máy tính có thể được tích hợp sẵn trong laptop hoặc máy để bàn All-In-One, hoặc cũng có thể là một thiết bị riêng biệt với dây nguồn riêng Một số màn hình còn tích hợp cảm ứng, cho phép người dùng điều khiển bằng ngón tay giống như trên điện thoại hay máy tính bảng Đối với máy tính để bàn truyền thống, màn hình thường nằm riêng và chỉ có chức năng hiển thị, do đó nếu màn hình hỏng hóc, người dùng có thể thay thế dễ dàng mà không lo mất dữ liệu hay phần mềm.
Chất lượng hiển thị được xác định bởi độ phân giải, phản ánh số lượng điểm ảnh khi hiển thị ở mức tối đa Ví dụ, màn hình laptop với độ phân giải 1.920x1.080 pixel, trong đó số đầu tiên là độ phân giải ngang và số thứ hai là độ phân giải dọc Để tính số điểm ảnh, bạn có thể nhân hai số này và chia cho kích thước đường chéo (inch) của màn hình để có chỉ số mật độ điểm ảnh (dpi), thường thấy trong các bài viết công nghệ và thông số kỹ thuật sản phẩm hiển thị.
Tỷ lệ khung hình là yếu tố quan trọng cần chú ý, hiện có hai tiêu chuẩn phổ biến: 4:3 (màn hình vuông) và 16:9 (màn hình rộng), trong đó 16:9 là tiêu chuẩn chủ yếu cho hầu hết nội dung video hiện nay.
Thông số độ phân giải màn hình cung cấp thông tin quan trọng về khung hình Để xác định tỷ lệ khung hình, bạn có thể rút gọn tỷ lệ độ phân giải ngang và độ phân giải dọc Ví dụ, với màn hình có độ phân giải tối đa là 800x600, việc chia 800 cho 600 sẽ cho kết quả là tỷ lệ 4:3.
Tập lệnh
Mỗi bộ xử lý được xác định bởi một tập lệnh riêng biệt, thường bao gồm hàng chục đến hàng trăm lệnh Mỗi lệnh này là một chuỗi nhị phân mà bộ xử lý có khả năng hiểu và thực hiện các thao tác cụ thể.
Các lệnh được mô tả bằng kí hiệu gợi nhớ
Gán trị cho biểu thức số học và logic được thực hiện thông qua các lệnh mã máy, đặc biệt trong các kiến trúc RISC, bao gồm một số lệnh quan trọng.
LOAD Ri, M (địa chỉ) ; M[địa chỉ] ← Ri : nạp dữ liệu
STORE Ri, M(địa chỉ); Ri ← M[địa chỉ] : Cất dữ liệu Địa chỉ được tính tuỳ theo kiểu định vị được dùng
- Lệnh tính toán số học: tính toán số nguyên trên nội dung của hai thanh ghi Ri, Rj và xếp kết quả vào trong Rk:
ADDD (cộng số có dấu chấm động, chính xác kép)
SUBD (trừ số có dấu chấm động, chính xác kép)
- Lệnh logic: thực hiện phép tính logic cho từng bit một
NEG (lệnh lấy số bù 1 )
Hình 2.1:Minh hoạ lệnh dịch chuyển và quay vòng
- Các lệnhdịch chuyển số học hoặc logic (SHIFT ),quay vòng (ROTATE)
Cho các kiến trúc kiểu RISC,ta có:
SLL(shift left logical:dịch trái logic)
SRL(shif tright logical:dịch phải logic)
SRA(shift right arithemtic:dịch phải số học)
Lệnh có điều kiện có dạng:
Nếuthìnếu không
(IFTHENELSE)
Lệnh này buộc phải ghi nhớ điều kiện và nhảy vòng nếu điều kiện được thoả
Hình 2.2 Bit trạng thái mà ALU tạo ra
Có hai kỹ thuật cơ bản để ghi nhớ các bit trạng thái:
Cách thứ nhất: Ghi các trạng thái trong một thanh ghi đa dụng
Ví dụ: Lệnh CMPRK,Ri, Rj
Lệnh này thực hiện phép trừ Ri – Rj mà không ghi kết quả, mà thay vào đó lưu trữ các bit trạng thái vào thanh ghi Rk Thanh ghi này được sử dụng cho lệnh nhảy có điều kiện, giúp lưu trữ nhiều trạng thái sau nhiều phép tính để sử dụng sau này Tuy nhiên, nhược điểm là cần sử dụng một thanh ghi đa dụng để ghi lại trạng thái sau mỗi phép tính, trong khi số lượng thanh ghi này bị giới hạn chỉ 32 trong các bộ xử lý hiện đại.
Cách thứ hai để lưu trữ các bit trạng thái là sử dụng một thanh ghi đặc biệt gọi là thanh ghi trạng thái Việc lưu giữ nội dung của thanh ghi này được thực hiện qua nhiều phương pháp khác nhau Trong kiến trúc SPARC, chỉ có một số lệnh nhất định được phép thay đổi thanh ghi trạng thái.
Ví dụ: lệnh ADDCC, SUBCC
Lệnh này thực hiện phép cộng (ADD) và phép trừ (SUB), đồng thời thay đổi thanh ghi trạng thái Trong kiến trúc Power PC, thanh ghi trạng thái được chia thành 8 trường, mỗi trường có 4 bit, tạo thành 8 thanh ghi trạng thái con.
Số giữ Toán hạng nguồn 1
Bit S BitZ Bit OVF Bit C
Các lệnh nhảy có điều kiện chỉ thực hiện khi điều kiện được thỏa mãn, nếu không, chương trình sẽ tiếp tục với lệnh tiếp theo Lệnh nhảy dựa vào thanh ghi trạng thái và chỉ thực hiện nhảy khi điều kiện trong lệnh là đúng.
Chúng ta xem một ví dụ thực hiện lệnh nhảy có điều kiện
Giả sử trạng thái sau khi bộ xử lý thi hành một tác vụ, được lưu trữ trong thanh ghi, và bộ xử lý thành các lệnh sau:
1.CMPR4,R1,R2 : Lệnh so sánh R1 và R2 bằng cách trừ R1 cho R2 và lưu trữ trạng thái trong R4
2.BGTR4,+2 : Nhảy bỏ 2 lệnh nếu R1 > R2
3.ADDR3,R0,R2 : Chuyển nội dung của R0, R2 vào R3
5.ADDR3,R0,R1 : chuyển nội dung R1 vào R3
Hình 2.3: Gọi thủ tục và trở về khi thực hiện xong thủtục
2.2.2 Tập lệnh của bộ xử lý 8086/8088
Chip 8086, được phát triển từ năm 1978 và ra mắt vào năm 1980, là bộ xử lý 16 bit với các thanh ghi bên trong cũng có kích thước 16 bit, cho phép xử lý dữ liệu hiệu quả.
16 bit số liệu cùng một lúc
Ra đời sau chip 8086, nó có cấu trúc bên trong và tập lệnh hoàn toàn giống 8086, chỉ khác ở kênh truyền số liệu với thế giới bên ngoài
Bộ xử lý 8086/8088 chỉ hỗ trợ các phép tính số học với số nguyên và không thể thực hiện trực tiếp các phép tính với số dấu phẩy động Để xử lý các phép toán với số thực, người dùng thường sử dụng giải pháp phần mềm bằng cách lập trình các chương trình con Phương pháp này cho phép tạo ra kết quả số dấu phẩy động thông qua các phép tính logic và số học trên số nguyên.
Kiến trúc RISC
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 đưa ra, nhấn mạnh việc sử dụng các thanh ghi mà không có sự khác biệt đáng kể giữa ô nhớ cho vi chương trình và ô nhớ cho 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, giúp tối ưu hóa kỹ thuật ống dẫn và dễ dàng giải mã.
Dunglượngbộnhớ vichươngtrình Độdàilệnh(tính bằngbit)
Bảng 2.2:Đặc tính của ba mẫu đầu tiên máy RISC
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 :
Việc cấm thâm nhập bộ nhớ đối với tất cả các lệnh ngoại trừ lệnh đọc và ghi yêu cầu chúng ta phải sử dụng nhiều lệnh để hoàn thành một công việc nhất định.
+ 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 gặp khó khăn do số lượng lệnh hạn chế, dẫn đến ít lựa chọn cho 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 tăng độ phức tạp trong quá trình dịch.
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 của chúng 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.
Các tiến bộ gần đây cho phép xếp đặt trong một vi mạch, một bộ xử lý RISC nền và nhiều toán tử chuyên dùng
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ạ
Đường đi dữ liệu
3.1.1.Các thành phần đường dẫn dữ liệu
Phần đường dẫn dữ liệu gồm: Đơn vị số học và lôgic (ALU: Arithmetic and Logic Unit)
Các đường nối kết các bộ phận trên
Phần này chủ yếu chứa các trạng thái của bộ xử lý, bao gồm các thanh ghi tổng quát và các thanh ghi quan trọng như thanh ghi đếm chương trình (PC), thanh ghi trạng thái (SR), thanh ghi đệm tạm (TEMP), thanh ghi địa chỉ bộ nhớ (MAR) và thanh ghi số liệu bộ nhớ (MBR) Ngoài ra, bộ đa hợp (MUX) cũng nằm trong phần này, đóng vai trò là điểm cuối của các kênh dữ liệu giữa CPU và bộ nhớ, với nhiệm vụ lập thời biểu truy cập bộ nhớ từ CPU cùng với các kênh dữ liệu, hệ thống bus nguồn (S1, S2) và bus kết quả (Dest).
3.1.2 Nhiệm vụ của đường dẫn dữ liệu
Phần đường dẫn 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 bộ làm tính và luận lý ALU, sau đó lưu trữ kết quả trở lại các thanh ghi tổng quát Tại các ngã vào và ngã ra của các thanh ghi tổng quát, có các mạch chốt A, B, C Thông thường, số lượng thanh ghi tổng quát là 32.
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 xử lý điển hình (Các đường không liên tục là các đường điều khiển)
Bộ điều khiển
3.2.1 Chức năng bộ điều khiển Điều khiển nhận lệnh từ bộ nhớ đưa vào thanh ghi lệnh
Tăng nội dung của PC để trỏ sang lệnh kế tiếp
Giải mã lệnh đã được nhận để xác định thao tác mà lệnh yêu cầu Phát ra các tín hiệu điều khiển thực hiện lệnh
Nhận các tín hiệu yêu cầu từ bus hệ thống và đáp ứng với các yêu cầu đó
Bộ điều khiển đóng vai trò quan trọng trong việc tạo ra các tín hiệu điều khiển di chuyển số liệu từ các thanh ghi đến bus hoặc ghi vào các thanh ghi Nó cũng điều khiển các tác vụ của các bộ phận chức năng như ALU và việc đọc, viết vào bộ nhớ trong Ngoài ra, bộ điều khiển còn tạo ra các tín hiệu cần thiết để thực hiện các lệnh một cách tuần tự.
3.2.2 Các phương pháp thiết kế bộ điều khiển a) Bộ điều khiển vi chương trình (Microprogrammed Control Unit)
Hình 3.2: Nguyên tắc vận hành của bộ điều khiển dùng vi chương trình
Bộ nhớ vi chương trình (ROM) lưu trữ các vi chương trình (microprogram)
Một vi chương trình bao gồm các vi lệnh (microinstruction)
Mỗi vi lệnh mã hoá cho một vi thao tác (microoperation) Để hoàn thành một lệnh cần thực hiện một hoặc một vài vi chương trình Tốc độ chậm
Bộ điều khiển mạch điện tử hoạt động dựa trên mô hình Automate trạng thái hữu hạn, trong đó mỗi hệ thống hoặc thành phần có một trạng thái cụ thể tại mỗi thời điểm Mục đích của các trạng thái này là để ghi nhớ thông tin quan trọng trong quá trình hoạt động của hệ thống, mặc dù không thể lưu trữ toàn bộ lịch sử do số lượng trạng thái hữu hạn Điều này yêu cầu thiết kế cẩn thận để chỉ lưu giữ những thông tin cần thiết Lợi ích của mô hình này là cho phép cài đặt hệ thống với nguồn tài nguyên cố định, có thể được triển khai dưới dạng mạch điện trong phần cứng hoặc chương trình đơn giản, giúp đưa ra quyết định dựa trên dữ liệu hạn chế hoặc vị trí trong mã lệnh.
Hình 3.3: Nguyên tắc vận hành của bộ điều khiển dùng mạch điện tử
Hình 3.3 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 lưu trữ lệnh cần thi hành cùng 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 xác định trạng thái tương lai và 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ó chiều dài cố định và cấu trúc đơn giản Phương pháp này thường được sử dụng trong các bộ xử lý RISC.
Diễn tiến thi hành lệnh mã máy
Thanh ghi PC lưu trữ địa chỉ của lệnh tiếp theo, sau đó chuyển địa chỉ này vào thanh ghi MAR Địa chỉ được đưa lên bus để thực hiện việc truyền dữ liệu Đồng thời, đơn vị điều khiển sẽ yêu cầu đọc bộ nhớ để lấy thông tin cần thiết.
Kết quả đưa lên data bus, sao chép vào thanh ghi MBR, đưa vào thanh ghi IR
Hình 3.4:Sơ đồ mô tả quá trình đọc lệnh
Lệnh từ thanh ghi lệnh IR được gửi đến đơn vị điều khiển, nơi diễn ra quá trình giải mã lệnh để xác định thao tác cần thực hiện Quá trình giải mã lệnh này xảy ra bên trong CPU.
Giai đoạn này thường chỉ được dùng cho các lệnh nạp dữ liệu, lưu dữ liệu và lệnh nhảy
Nhận dữ liệu trực tiếp:
CPU đưa địa chỉ của toán hạng ra bus địa chỉ
CPU phát tín hiệu điều khiển đọc
Toán hạng được đọc vào CPU
Tương tự như nhận lệnh
Nhận dữ liệu gián tiếp:
Hình 3.5: Sơ đồ tả nhận toán hạng gián tiếp
Quá trình nhận dữ liệu gián tiếp:
CPU đưa địa chỉ ra bus địa chỉ
CPU phát tín hiệu điều khiển đọc
Nội dung ngăn nhớ được truyền vào CPU dưới dạng địa chỉ của toán hạng Địa chỉ này được CPU phát ra qua bus địa chỉ để xác định và truy xuất toán hạng cần thiết.
CPU phát tín hiệu điều khiển đọc
Toán hạng được đọc vào CPU
Có nhiều dạng tuỳ thuộc vào lệnh
Chuyển giữa các thanh ghi
Thao tác số học/logic
Chuyển điều khiển (rẽ nhánh)
Rd ← Ngã ra ALU hoặc Rd ← MBR
CPU đưa địa chỉ ra bus địa chỉ
CPU đưa dữ liệu cần ghi ra bus dữ liệu
CPU phát tín hiệu điều khiển ghi
Dữ liệu trên bus dữ liệu được copy đến vị trí xác định Lưu trữ kết quả trong thanh ghi đích
Hình 3.6: Sơ đồ mô tả quá trình lưu kết quả
Ngắt
Ngắt là cơ chế cho phép CPU tạm dừng chương trình hiện tại để chuyển sang thực hiện một chương trình khác, được gọi là chương trình con phục vụ ngắt.
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ả sự kiện này Tuy nhiên, một số nhà sản xuất khác lại gọi hiện tượng này là "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 đó, việc xử lý ngắt quãng là thách thức lớn nhất Để phát hiện một ngắt quãng trong quá trình thực thi lệnh, cần điều chỉnh chu kỳ xung nhịp, điều này có thể ảnh hưở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à ứng dụng cho các hiện tượng thời gian thực Hiện nay, ngắt quãng được áp dụng trong nhiều lĩnh vực khác nhau.
Ngắt do lỗi khi thực hiện chương trình, ví dụ: tràn số, chia cho 0
Ngắt do lỗi phần cứng, ví dụ lỗi bộ nhớ RAM
Ngắt do mô-đun vào-ra phát tín hiệu ngắt đến CPU yêu cầu trao đổi dữ liệu Người lập trình muốn dùng dịch vụ của hệ điều hà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
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.
Khi một ngắt xảy ra, bộ xử lý thực hiện một số bước quan trọng để xử lý ngắt, nhưng một số bộ xử lý chỉ cho phép ngắt được chấp nhận sau khi hoàn tất lệnh hiện tại Điều này giúp đơn giản hóa quá trình thiết kế.
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
Sơ đồ mô tả hoạt động ngắt
Hình 3.7: Sơ đồ mô tả chu trình ngắt
Nội dung của bộ đếm chương trình PC (địa chỉ trở về sau khi ngắt) được đưa ra bus dữ liệu
CPU gửi địa chỉ từ con trỏ ngăn xếp SP ra bus địa chỉ và phát tín hiệu điều khiển để ghi bộ nhớ Địa chỉ nhận được trên bus dữ liệu sẽ được ghi vào vị trí xác định trong ngăn xếp Cuối cùng, địa chỉ lệnh đầu tiên của chương trình con điều khiển ngắt được nạp vào bộ đếm chương trình (PC).
Kỹ thuật ố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 thực hiện theo một chu trình đều đặn trong 5 giai đoạn: lấy lệnh (Instruction Fetch - IF), giải mã (Instruction Decode - ID), thi hành (Execute - EX), thâm nhập bộ nhớ (Memory Access - MEM) và lưu trữ kết quả (Result Storing - RS) Mỗi giai đoạn này diễn ra trong một chu kỳ xung nhịp, đảm bảo tính nhất quán và hiệu quả trong việc xử lý lệnh.
Hình 3.8 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ỳ)
Chuỗi lệnh Chu kỳ xung nhịp
Lệnh thứ i IF ID EX MEM RS
Lệnh thứ i+1 IF ID EX MEM RS
Lệnh thứ i+2 IF ID EX MEM RS
Lệnh thứ i+3 IF ID EX MEM RS
Lệnh thứ i+4 IF ID EX MEM RS
Hình 3.8.Các giai đoạn khác nhau của nhiều lệnhđược thi hànhcùngmột lúc
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 nhỏ 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 diễn ra trong khoảng 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 xử lý Hình 3.9 minh họa thí dụ về siêu ống dẫn bậc 2 và so sánh với siêu ống dẫn đơn giản.
Hình 3.9: Siêu ống dẫn bậc 2 so với siêu ống dẫn đơn giản
Trong khoảng thời gian Tc, máy có siêu ống dẫn làm 2 lệnh thay vì 1 lệnh như trong máy có kỹ thuật ống dẫn đơn giản
Các loại bộ nhớ
4.1.1 ROM (Read Only Memory) a Đặc điểm ROM
Bộ nhớ chỉ đọc ROM được sản xuất bằng công nghệ bán dẫn, với các phần tử nhớ có trạng thái cố định Thông tin trong ROM được lưu trữ một cách bền vững, không bị mất ngay cả khi mất điện Chương trình trong ROM được ghi vào trong quá trình chế tạo, vì vậy nó là bộ nhớ không khả biến, lưu trữ các thông tin quan trọng.
Thư viện các chương trình con
Các chương trình điều khiển hệ thống (BIOS)
Vi chương trình b Các loại ROM
ROM mặt nạ: thông tin được ghi khi sản xuất, rất đắt
PROM (Programmable ROM): Cần thiết bị chuyên dụng để ghi bằng chương trình chỉ ghi được một lần
EPROM (Erasable PROM): Cần thiết bị chuyên dụng để ghi bằng chương trình ghi được nhiều lần Trước khi ghi lại, xóa bằng tia cực tím
EEPROM (Electrically Erasable PROM): Có thể ghi theo từng byte, xóa bằng điện
Flashmemory (Bộ nhớ cực nhanh): Ghi theo khối, xóa bằng điện
4.1.2.RAM (Random Access Memory) a Đặc điểm
RAM, hay bộ nhớ truy cập ngẫu nhiên, là một loại bộ nhớ chính trong máy tính Đặc điểm nổi bật của RAM là thời gian thực hiện các thao tác đọc hoặc ghi cho mỗi ô nhớ là đồng nhất, bất kể vị trí của nó trong bộ nhớ.
Mỗi ô nhớ trong RAM đều được gán một địa chỉ duy nhất, thường là một byte (8 bit) Hệ thống có khả năng đọc và ghi nhiều byte cùng một lúc, tối ưu hóa hiệu suất xử lý dữ liệu.
Bộ nhớ trong (RAM) được xác định bởi dung lượng và cấu trúc, bao gồm số ô nhớ và số bit trong mỗi ô Thời gian thâm nhập, tức là khoảng thời gian từ khi địa chỉ ô nhớ được đưa ra cho đến khi nội dung được đọc, cùng với chu kỳ bộ nhớ, thời gian giữa hai lần thâm nhập liên tiếp, cũng là những yếu tố quan trọng trong việc đánh giá hiệu suất của RAM.
Máy vi tính sử dụng RAM để lưu trữ mã chương trình và dữ liệu trong quá trình thực thi, với đặc điểm nổi bật là khả năng truy cập nhanh chóng vào các vị trí khác nhau trong bộ nhớ mà không cần thời gian trì hoãn Có nhiều loại RAM khác nhau, mỗi loại mang đến những tính năng và hiệu suất riêng biệt.
Tuỳ theo công nghệ chế tạo, người ta phân biệt RAM tĩnh (SRAM: Static RAM) và RAM động (Dynamic RAM)
RAM tĩnh (SRAM) được sản xuất bằng công nghệ ECL, bao gồm CMOS và BiCMOS Mỗi bit nhớ của SRAM được cấu thành từ các cổng logic với 6 transistor MOS, cho phép lưu trữ dữ liệu miễn là nguồn điện được cung cấp SRAM nổi bật với tốc độ truy xuất nhanh, khả năng đọc mà không làm mất nội dung ô nhớ, và thời gian thâm nhập tương đương với chu kỳ bộ nhớ.
RAM động sử dụng kỹ thuật MOS, trong đó mỗi bit nhớ được cấu thành từ một transistor và một tụ điện Tương tự như SRAM, dữ liệu trong RAM động chỉ được lưu trữ khi bộ nhớ vẫn được cấp điện.
Việc ghi nhớ trong bộ nhớ DRAM dựa vào việc duy trì điện tích trong tụ điện, nhưng mỗi lần đọc một bit nhớ sẽ làm mất nội dung của bit đó Do đó, sau khi đọc, bộ điều khiển phải viết lại nội dung vào ô nhớ, khiến chu kỳ bộ nhớ động ít nhất gấp đôi thời gian thâm nhập Thông tin trong bit nhớ chỉ được lưu trữ tạm thời, vì tụ điện sẽ phóng điện sau khoảng 2 giây, yêu cầu phải làm tươi bộ nhớ bằng cách đọc và ghi lại nội dung cho tất cả các ô nhớ Quá trình làm tươi này được thực hiện tự động bởi vi mạch bộ nhớ Mặc dù bộ nhớ DRAM chậm hơn, nhưng nó có chi phí thấp hơn so với SRAM.
SDRAM (Viết tắt từ Synchronous Dynamic RAM) được gọi là DRAM đồng bộ SDRAM gồm 3 phân loại: SDR, DDR, và DDR2
SDR SDRAM (Single Data Rate SDRAM), thường được gọi tắt là "SDR", là loại RAM có 168 chân và hỗ trợ tốc độ 33Mhz, 66Mhz, 100Mhz và 133Mhz Loại RAM này từng được sử dụng trong các máy vi tính cũ, với bus speed chạy cùng vận tốc với clock speed của chip nhớ, nhưng hiện nay đã trở nên lỗi thời.
DDR SDRAM (Double Data Rate SDRAM), thường được gọi tắt là "DDR", là loại bộ nhớ có 184 chân và là phiên bản cải tiến của SDR Với tốc độ truyền tải gấp đôi so với SDR (200Mhz, 266Mhz, 333Mhz, 400Mhz), DDR SDRAM cho phép truyền tải dữ liệu hai lần trong một chu kỳ bộ nhớ Mặc dù DDR SDRAM đã được thay thế bởi DDR2, nhưng hầu hết các mainboard đời mới hiện nay vẫn hỗ trợ DDR và không còn hỗ trợ SDRAM.
DDR2 SDRAM (Double Data Rate 2 SDRAM), thường được gọi tắt là "DDR2", là thế hệ thứ hai của DDR với 240 chân Điểm mạnh lớn nhất của DDR2 so với DDR là khả năng đạt bus speed cao gấp đôi clock speed.
RDRAM, viết tắt của Rambus Dynamic RAM, là một loại DRAM được thiết kế với công nghệ hoàn toàn mới so với SDRAM RDRAM hoạt động theo hệ thống lặp đồng bộ và truyền dữ liệu theo một hướng Mỗi kênh bộ nhớ RDRAM có khả năng hỗ trợ lên đến 32 chip DRAM, với các chip được kết nối tuần tự trên một module gọi là RIMM (Rambus Inline Memory Module).
RDRAM là công nghệ truyền dữ liệu giữa các mạch điều khiển và từng chip riêng biệt, không truyền trực tiếp giữa các chip Bus bộ nhớ RDRAM tạo thành một đườ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 Để đảm bảo kết nối liền mạch, các khe cắm không chứa RIMM phải được gắn một module liên tục Tốc độ của Rambus dao động từ 400-800 MHz, tuy không nhanh hơn SDRAM nhưng lại có giá cao hơn nhiều, dẫn đến việc ít người sử dụng RDRAM yêu cầu cắm thành cặp và cần có RAM giả (C-RIMM) ở các khe trống để đủ số lượng.
4.1.3 Thiết kế môdun nhớ bán dẫn
Hình 4.2 Tổ chức chíp nhớ
Các tín hiệu của chíp nhớ
Các đường địa chỉ:An-1->A0:có 2 n từ nhớ
Các đường dữ liệu:Dn-1 ->D0: độ dài từ nhớ bằng m bit
Tín hiệu chọn chip CS (Chip Select)
Tín hiệu điều khiển đọc OE(output Enable)
Tín hiệu điều khiển ghi wE(write enable)
Dung lượng chip nhớ=2 n xm bit
Cần thiết kế để tăng dung lượng:
Thiết kế tăng độ dài từ nhớ
Thiết kế tăng số lượng từ nhớ
* Tăng độ dài từ nhớ
Cho chip nhớ SRAM 4K x 4 bit
Thiết kế môdun nhớ 4K x 8 bit
Dung lượng chip nhớ=2 12 x 4 bit
Chip nhớ có 12 chân địa chỉ, 4 chân dữ liệu
Môdun nhớ cần có:12 chân địa chỉ, 8 chân dữ liệu
* Tăng số lượng từ nhớ
Cho chip nhớ SRAM 4K x8 bit
Thiết kế môdun nhớ 8K x 8 bit
Dung lượng chip nhớ = 2 12 x 8 bit
Chip nhớ có:12 chân địa chỉ, 8 chân dữ liệu
Dung lượng môdun nhớ:2 13 x 8 bit
13 chân địa chỉ, 8 chân dữ liệu
Các cấp bộ nhớ
Các đặc tính như dung lượng lưu trữ, thời gian truy cập, chu kỳ bộ nhớ và giá thành mỗi bit nhớ giúp phân loại các cấp bộ nhớ từ bộ nhớ nhanh có dung lượng nhỏ đến bộ nhớ chậm với dung lượng lớn.
Hình 4.3: Các cấp bộ nhớ
BỘ VI XỬ LÝ CP
Ta nhận thấy rằng từ trái sang phải: dung lượng tăng dần, tốc độ giảm dần, giá thành/1bit giảm dần
Máy tính lưu trữ dữ liệu theo cấu trúc phân cấp, với các ứng dụng khởi động, dữ liệu và lệnh được chuyển từ đĩa cứng tốc độ chậm sang bộ nhớ chính (RAM động hay DRAM) để CPU truy xuất nhanh hơn DRAM đóng vai trò như một vùng đệm cho đĩa.
Mặc dù DRAM nhanh hơn đĩa cứng, nó vẫn có những giới hạn nhất định Để cải thiện tốc độ truy cập dữ liệu, thông tin thường xuyên sử dụng sẽ được chuyển lên bộ nhớ đệm cấp 2 (L2), loại bộ nhớ nhanh hơn Bộ nhớ L2 có thể nằm cạnh bên RAM tĩnh hoặc được tích hợp trực tiếp trên chip bộ xử lý trong các CPU mới Ở cấp độ cao nhất, các thông tin quan trọng nhất như lệnh của các vòng lặp thực thi lặp lại được lưu trữ trong bộ nhớ đệm cấp 1 (L1), loại bộ nhớ nhanh nhất, ngay trên bộ xử lý.
Bộ nhớ đệm L2 nằm trên CPU có tốc độ truy xuất nhanh gấp bốn lần so với trường hợp nó nằm trên chip riêng
Khi bộ xử lý thực thi một câu lệnh, nó sẽ đầu tiên tìm kiếm trong thanh ghi dữ liệu của mình Nếu không tìm thấy dữ liệu, nó sẽ tiếp tục kiểm tra bộ nhớ đệm L1 và L2 Nếu dữ liệu vẫn không có, bộ xử lý sẽ truy cập vào bộ nhớ chính RAM Cuối cùng, nếu dữ liệu vẫn chưa được tìm thấy, hệ thống sẽ phải lấy dữ liệu từ đĩa cứng.
Các đặc tính chính của các cấp bộ nhớ bao gồm hai mức quan trọng: bộ nhớ cache và bộ nhớ ảo, trong đó bộ nhớ ảo kết hợp giữa bộ nhớ trong và không gian lưu trữ trên đĩa cứng Cách tổ chức này mang lại sự tiện lợi cho người sử dụng, khi họ chỉ cần tương tác với một không gian định vị ô nhớ duy nhất, mà không cần quan tâm đến vị trí thực tế của các lệnh và dữ liệu.
Hình 4.4: Hai mức bộ nhớ
Các cấp bộ nhớ giúp lập trình viên có được bộ nhớ nhanh 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 có dung lượng nhỏ thì nhanh nhưng đắt hơn, trong khi cấp có dung lượng lớn hơn lại rẻ hơn nhưng chậm hơn Mục tiêu của việc thiết lập các cấp bộ nhớ là để người dùng có một hệ thống bộ nhớ tiết kiệm chi phí như cấp thấp nhất, đồng thời gần đạt tốc độ của cấp cao nhất Các cấp bộ nhớ thường được lồng ghép, với dữ liệu ở một cấp có thể truy cập ở cấp thấp hơn và tiếp tục ở cấp thấp nhất.
Mỗi cấp bộ nhớ trong hệ thống có dung lượng lớn hơn cấp trên, cho phép ánh xạ một phần địa chỉ của các ô nhớ vào địa chỉ của cấp trên có tốc độ nhanh hơn Đồng thời, 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 bảo hoạt động hiệu quả.
Truy cập dữ liệu trong bộ nhớ
Cache là bộ nhớ tốc độ cao, lưu trữ các lệnh và dữ liệu thường xuyên sử dụng Việc lựa chọn lệnh và dữ liệu để lưu vào cache dựa trên các nguyên tắc cụ thể nhằm tối ưu hóa hiệu suất truy cập và xử lý thông tin.
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 cũng tương tự như thâm nhập lệnh, nhưng hiệu quả không cao bằng 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ý cho biết các ô nhớ có khả năng được truy cập 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ệ Dữ liệu thường có cấu trúc rõ ràng, và thường chỉ một phần dữ liệu là được truy cậ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ó sẽ tiếp tục truy cập vào ô nhớ có địa chỉ kế tiếp, nhờ vào việc các lệnh được sắp xếp theo chuỗi có thứ tự.
Tổ chức bộ nhớ hiệu quả bằng cách lưu trữ các lệnh và dữ liệu thường xuyên sử dụng trong bộ nhớ cache sẽ tăng cường hiệu suất máy tính một cách đáng kể.
Bộ nhớ Cache
4.4.1 Cache (bộ nhớ đệm nhanh)
- Cache có tốc độ nhanh hơn bộ nhớ chính
- Cache được đặt giữa CPU và bộ nhớ chính
- Nhằm tăng tốc độ truy cập bộ nhớ của CPU
- Cache có thể được đặt trên chip CPU
+ Ví dụ về thao tác của cache:
CPU yêu cầu nội dung của ngăn nhớ
CPU kiểm tra trên cache với dữ liệu này
Nếu có, CPU nhận dữ liệu từ cache (nhanh)
Nếu không có, đọc block nhớ chứa dữ liệu từ bộ nhớ chính vào cache Tiếp đó chuyển dữ liệu từ cache vào CPU
+ Cấu trúc chung của cache / bộ nhớ chính
Hình 4.6 Cấu trúc cache và bộ nhớ
Bộ nhớ chính có 2 N byte nhớ
- Bộ nhớ chính và cache được chia thành các khối có kích thước bằng nhau
- Bộ nhớ chính: B0, B1, B2, , Bp-1 (p Blocks)
- Bộ nhớ cache: L0, L1, L2, , Lm-1 (m Lines)
- Kích thước của Block = 8, 16, 32, 64, 128 byte
Một số Block của bộ nhớ chính được nạp vào các Line của cache
Nội dung Tag (thẻ nhớ) cho biết Block nào của bộ nhớ chính hiện đang được chứa ở Line đó
Khi CPU truy nhập (đọc/ghi) một từ nhớ, có hai khả năng xảy ra:
- Từ nhớ đó có trong cache (cache hit)
- Từ nhớ đó không có trong cache (cache miss)
Vì số line của cache ít hơn số block của bộ nhớ chính nên cần có một thuật giải ánh xạ thông tin trong bộ nhớ chính và cache
4.4.3 Các phương pháp ánh xạ địa chỉ a Ánh xạ trực tiếp
Mỗi Block của bộ nhớ chính chỉ có thể được nạp vào một Line của cache:
Bj chỉ có thể nạp vào Lj mod m , m là số Line của cache
Hình 4.7: Sơ đồ ánh xạ trực tiếp Đặc điểm của ánh xạ trực tiếp:
+ Mỗi một địa chỉ N bit của bộ nhớ chính gồm ba trường:
Trường Word gồm W bit xác định một từ nhớ trong Block hay Line:
2 W = kích thước của Block hay Line
Trường Line gồm L bit xác định một trong số các Line trong cache:
+ Bộ so sánh đơn giản
+ Xác suất cache hit thấp
46 b Ánh xạ liên kết toàn phần
Mỗi Block có thể nạp vào bất kỳ Line nào của cache Địa chỉ của bộ nhớ chính bao gồm hai trường:
- Trường Word giống như trường hợp ở trên
- Trường Tag dùng để xác định Block của bộ nhớ chính
Tag xác định Block đang nằm ở Line đó
Hình 4.8: Sơ đồ ánh xạ toàn phần Đặc điểm của ánh xạ liên kết toàn phần:
- So sánh đồng thời với tất cả các Tag mất nhiều thời gian
- Xác suất cache hit cao
- Bộ so sánh phức tạp c Ánh xạ liên kết tập hợp
- Cache đươc chia thành các Tập (Set)
- Mỗi một Set chứa một số Line
- Ví dụ: 4 Line/Set 4-way associative mapping
- Ánh xạ theo nguyên tắc sau:
Hình 4.9: Sơ đồ ánh xạ liên kết tập hợp Đặc điểm của ánh xạ liên kết tập hợp:
Trường Set có S bit dùng để xác định một trong số V = 2 S Set
Tổng quát cho cả hai phương pháp trên
* Các giải thuật thay thế block trong cache
+ Thuật giải thay thế (1): Ánh xạ trực tiếp
- Mỗi Block chỉ ánh xạ vào một Line xác định
- Thay thế Block ở Line đó
+ Thuật giải thay thế (2): Ánh xạ liên kết
- Được thực hiện bằng phần cứng (nhanh)
- Random: Thay thế ngẫu nhiên
- FIFO (First In First Out): Thay thế Block nào nằm lâu nhất ở trong Set đó
- LFU (Least Frequently Used): Thay thế Block nào trong Set có số lần truy nhập ít nhất trong cùng một khoảng thời gian
- LRU (Least Recently Used): Thay thế Block ở trong Set tương ứng có thời gian lâu nhất không được tham chiếu tới Tối ưu nhất
* Phương pháp ghi dữ liệu khi cache hit
Ghi xuyên qua (Write-through): Ghi cả cache và cả bộ nhớ chính, tốc độ chậm
Ghi trả sau (Write-back): Chỉ ghi ra cache, tốc độ nhanh, khi Block trong cache bị thay thế cần phải ghi trả cả Block về bộ nhớ chính
* Cache trên các bộ xử lý Intel
80386: Không có cache trên chip
Pentium: có 2 cache L1 trên chip
Pentium4: hai mức cache L1 và L2 trên chip
- Cache L1: Mỗi cache 8KB, Kích thước Line = 64byte, ánh xạ liên kết tập hợp 4 đường
- Cache L2: 256KB, Kích thước Line = 128byte, ánh xạ liên kết tập hợp 8 đường
Việc sử dụng bộ nhớ cache có thể làm gia tăng sự khác biệt giữa kích thước và thời gian truy cập giữa cache trong và bộ nhớ trong Do đó, nhiều cấp độ cache đã được đưa vào sử dụng để tối ưu hóa hiệu suất.
• Cache mức một (L1 cache): thường là cache trong (on-chip cache; nằm bên trong CPU)
• Cache mức hai (L2 cache) thường là cache ngoài (off-chip cache; cache này nằm bên ngoài CPU)
Đĩ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ữ với dung lượng lớn, đĩa từ vẫn giữ vai trò quan trọng trong việc lưu trữ thông tin từ nhiều năm qua.
1965 Đĩa từ có hai nhiệm vụ trong 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, do đó, bài viết chỉ tập trung vào đĩa cứng Giáo trình này sẽ khái quát về cấu tạo, cách vận hành và các đặc điểm quan trọng của đĩa cứng.
Đĩa cứng bao gồm từ 1 đến 4 lớp đĩa quay quanh trục với tốc độ từ 3.600 đến 15.000 vòng mỗi phút Các lớp đĩa này được chế tạo từ kim loại và có hai mặt được phủ chất từ tính Đường kính của đĩa dao động từ 1,3 inch đến 8 inch, với mỗi mặt được chia thành nhiều rãnh đồng trục, thường từ 10.000 đến gần 30.000 rãnh Mỗi rãnh lại được chia thành nhiều 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 Một rãnh có thể chứa từ 64 đến 800 cung, và thông tin trên mỗi cung bao gồm số thứ tự, dữ liệu kèm mã sửa lỗi, và số thứ tự của cung tiếp theo.
Số lượng sector trên các track của ổ đĩa cứng thay đổi từ phần rìa đến vùng tâm của đĩa Mỗi ổ đĩa cứng được chia thành hơn 10 vùng, trong đó mỗi vùng có số sector/track đồng nhất.
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
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, và ngày càng được áp dụng rộng rãi nhờ sự phát triển của các chuẩn giao diện thông minh như SCSI.
Mật độ ghi đều Mật độ ghi không đều
Để đọc hoặc ghi thông tin trên đĩa cứng, một đầu đọc ghi di động được áp vào mỗi mặt của từng lớp đĩa Các đầu đọc/ghi này được gắn chặt vào một thanh, cho phép chúng di chuyển đồng thời trên một đường bán kính của mỗi lớp đĩa, đảm bảo tất cả các đầu đều nằm trên những 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ụ.
51 muốn đọc nhanh đĩa từ nên thông thường ổ đĩa đọc nhiều hơn số dữ liệu cần đọc; người ta nói đây là cách đọc trước
Bảng5.3:Thông số kỹ thuật của đĩa cứng
Đĩa quang
5.1.1 CD-ROM, CD-R/W đĩa quang có đường kính 120, 80 mm, gồm có: CD-R (CD Recordable), CD-RW (Re Writable)
5.1.2 DVD-ROM, DVD-R/W lưu trữ dữ liệu có dung lượng lớn âm thanh, hình ảnh chất lượng cao, gồm có: DVD-R, DVD-RW
Bảng 5.4:So sánh một số thông số của hai loại đĩa CDROM và DVDROM
Các loại thẻ nhớ
Hiện nay, thẻ nhớ flash là một trong những công nghệ lưu trữ tiên tiến nhất, thuộc loại bộ nhớ bán dẫn EEPROM, thường được sử dụng trong các chip BIOS trên bo mạch chủ Thẻ nhớ được cấu tạo từ các hàng và cột, với mỗi vị trí giao nhau tạo thành một ô nhớ, bao gồm hai transistor cách nhau bởi một lớp ô xít mỏng.
Hình 5.3:Minh hoạ hai trạng thái của một bit nhớ trong thẻ nhớ
Các chuẩn về Bus
5.4.1 Định nghĩa bus, bus hệ thống a Định nghĩa bus
Trong máy tính, bộ xử lý và bộ nhớ trong giao tiếp với các thiết bị ngoại vi thông qua bus Bus là một hệ thống gồm nhiều dây cáp (khoảng 50 đến 100 sợi) với các nhóm cáp được phân chia theo chức năng, bao gồm đường dữ liệu, đường địa chỉ, dây điều khiển và nguồn cung cấp Hệ thống bus (System bus) đóng vai trò quan trọng trong việc kết nối các thành phần của máy tính.
Bus hệ thống : Là hệ thống dẫn đường liên quan các thiết bị quan trọng như: CPU, bộ nhớ và các mạch vào ra
Bus hệ thống chỉ có khả năng phục vụ một yêu cầu trao đổi dữ liệu tại một thời điểm Tốc độ của bus hệ thống cần phải tương đương với tốc độ của mô-đun nhanh nhất trong hệ thống Ngoài ra, bus hệ thống còn phụ thuộc vào cấu trúc bus của bộ xử lý, và điều này cũng ảnh hưởng đến các mô-đun nhớ cùng các mô-đun vào-ra.
5.4.2 Bus đồng bộ và không đồng bộ a.Bus đồng bộ
Là một đường điều khiển bởi bộ dao động thạch anh, tín hiệu trên đường dây này có dạng sóng vuông
+ Bus có tín hiệu Clock
+ Các sự kiện trên bus được xác định bởi xung nhịp Clock
Bus hệ thống là một loại bus đồng bộ, hoạt động dựa trên một xung nhịp chung cho các đường dây điều khiển cùng với một nghi thức để xử lý địa chỉ và dữ liệu Nhờ vào việc hạn chế mạch logic để xác định hành động tiếp theo, bus đồng bộ mang lại tốc độ nhanh và chi phí thấp Tất cả các thiết bị trên bus này đều phải hoạt động theo cùng một xung nhịp Ngược lại, bus không đồng bộ hoạt động mà không cần xung nhịp chung, cho phép các thiết bị giao tiếp linh hoạt hơn.
+ Không có tín hiệu Clock
+ Kết thúc một sự kiện trên trên bus sẽ kích hoạt cho một sự kiện tiếp theo
5.4.3 Hệ thống bus phân cấp a Bus nối bộ xử lý với bộ nhớ
Bus hệ thống nối bộ xử lý với bộ nhớ Bus kết nội bộ xủ lý với bộ nhớ thì ngắn và thường rất nhanh
Hình 5.4: Bảng biểu diễn tốc độ dữ liệu của các ngoại vi
54 b Bus vào – ra:(BUS nối ngoại vi)
Bus vào/ra có thể có chiều dài lớn và khả năng kết nối với nhiều loại ngoại vi khác nhau, cho phép xử lý lưu lượng thông tin và định dạng dữ liệu đa dạng.
Hình 5.5: Hệ thống bus trong một máy tính
Hiện nay, nhiều hệ thống máy tính sử dụng kiến trúc bus phân cấp với hai loại bus chính Bus tốc độ cao (high-speed bus) được thiết kế để kết nối các thiết bị yêu cầu băng thông lớn như SCSI, LAN, đồ họa và video Trong khi đó, hệ thống bus mở rộng (expansion bus) phục vụ cho các thiết bị ngoại vi yêu cầu tốc độ thấp như modem, cổng nối tiếp và cổng song song Giữa hai hệ thống bus này có một giao diện đệm, giúp tối ưu hóa hiệu suất kết nối.
Hình5.6: Hệ thống bus phân cấp
Ta có thể có nhiều lựa chọn trong việc thiết kế một bus Đặc tính của bus
Hệ thống bus nối ngoài là một phần quan trọng trong kiến trúc máy tính, với độ rộng bus ảnh hưởng đến khả năng truyền tải dữ liệu Đường dây địa chỉ và số liệu có sự khác biệt rõ rệt, tuy nhiên chúng được đa hợp để tối ưu hóa hiệu suất Độ rộng bus số liệu cũng đóng vai trò quan trọng trong việc xử lý và truyền tải thông tin một cách hiệu quả.
Càng rộng càng nhanh (ví dụ 64 bít)
Càng hẹp càng ít tốn kém (ví dụ
Số từ được chuyển Chuyển nhiều từ Chuyển đơn giản mỗi lần một từ
Chủ nhân của bus Nhiều Một
Chuyển từng gói Có Cần nhiều chủ nhân bus
Không Kết nối một lần và chuyển hết thông tin
Xung nhịp Đồng bộ Bất đồng bộ
Bảng 5.6: Các đặc tính của bus
Trong hệ thống bus, các chủ nhân có thể khởi động tác vụ đọc hoặc viết, với bộ xử lý là một ví dụ điển hình Khi có nhiều bộ xử lý hoặc ngoại vi, cần có cơ chế trọng tài để xác định ai được quyền sử dụng bus Việc sử dụng nhiều chủ nhân cho phép tăng băng thông thông qua kỹ thuật phân chia nhỏ tác vụ, trong đó các tác vụ được chuyển dưới dạng gói tin thay vì xử lý riêng lẻ Một tác vụ đọc bao gồm yêu cầu đọc và phản hồi từ bộ nhớ, với mỗi tác vụ được gán nhãn loại Kỹ thuật này cho phép bus được sử dụng hiệu quả hơn khi bộ nhớ thực hiện quá trình đọc thông tin.
5.4.4 Các loại bus sử dụng trong các hệ thống vi xử lý
Trong thế giới máy tính có rất nhiều loại bus khác nhau được sử dụng Các loại bus này nói chung là không tương thích với nhau
Sau đây là một số loại bus được dùng phổ biến
Tên bus Lĩnh vực áp dụng
Máy tính IBM PC và IBM/PC/AT sử dụng các vi xử lý như 8086, 8088 và 80386, trong khi một số hệ thống khác lại áp dụng vi xử lý Motorola Những công nghệ này đóng vai trò quan trọng trong lĩnh vực vật lý hạt nhân.
Bảng 5.7 : một số loại bus
* Theo giao thức truyền thông ( bus đồng bộ và không đồng bộ)
* Theo loại tín hiệu truyền trên bus ( bus địa chỉ, bus dữ liệu, bus điều khiển)
Chức năng : vận chuyển địa chỉ để xác định ngăn nhớ hay cổng vào- ra + Bus dữ liệu:
Chức năng: vận chuyển lệnh từ bộ nhớ đến CPU, vận chuyển dữ liệu giữa CPU, các môđun nhớ và môđun vào-ra
Chức năng: vận chuyển các tín hiệu điều khiển
Các loại tín hiệu điều khiển:
CPU phát ra tín hiệu để điều khiển mô-đun nhớ và mô-đun vào-ra, trong khi các tín hiệu từ mô-đun nhớ và mô-đun vào-ra gửi yêu cầu đến CPU.