Nói cách khác, đó là các thuộc tính có ảnh hưởng trực tiếp đến việc thực thi một chương trình, ví dụ như tập chỉ thị của máy tính, số bit được sử dụng để biểu diễn dữ liệu, cơ chế nhập/
Trang 1Môn học: Kiến trúc máy tính Thời lượng: 20 tiết lý thuyết
Giảng viên: Thạc sĩ Hoàng Ngọc Thanh Điện thoại: 0913.840991
thanhhn_vtu@vnpt.com.vn
Website: thanhhn.jimdo.com
Trang 2Chương 1: Giới thiệu chung
Chương 2: Lịch sử máy tính
Chương 3: Đường truyền hệ thống
Chương 4: Bộ nhớ trong của máy tính Chương 5: Bộ nhớ ngoài của máy tính
Trang 3TỔ CHỨC & KIẾN TRÚC MÁY TÍNH
Kiến trúc máy tính đề cập đến những thuộc tính hệ thống mà lập trình viên có thể quan sát được Nói cách khác, đó là các thuộc tính có ảnh hưởng trực tiếp đến việc thực thi một chương trình, ví dụ như tập chỉ thị của máy tính, số bit được sử dụng để biểu diễn dữ liệu,
cơ chế nhập/xuất, kỹ thuật định địa chỉ bộ nhớ, v.v
Tổ chức máy tính quan tâm đến các đơn vị vận hành và sự kết nối giữa chúng nhằm hiện thực hóa những đặc tả về kiến trúc, chẳng hạn như
về tín hiệu điều khiển, giao diện giữa máy tính với các thiết bị ngoại vi, kỹ thuật bộ nhớ được
sử dụng, v.v
Kiến trúc IBM System/370
Trang 4BỐN CHỨC NĂNG CỦA MÁY TÍNH
Xử lý dữ liệu: Dữ liệu có rất nhiều dạng và phạm vi yêu cầu xử lý cũng rất rộng Chỉ có một số phương pháp
cơ bản trong xử lý dữ liệu.
Lưu trữ dữ liệu: Lưu trữ tạm thời và dài hạn
Di chuyển dữ liệu: Khả năng này được thể hiện thông qua việc di chuyển dữ liệu giữa máy tính với các thiết bị nối kết trực tiếp hay từ xa đến nó Tùy thuộc vào kiểu kết nối và cự ly di chuyển dữ liệu, chúng ta có tiến trình nhập xuất dữ liệu hay truyền dữ liệu:
Tiến trình nhập xuất dữ liệu: thực hiện di chuyển dữ liệu trong cự ly ngắn giữa máy tính và thiết bị nối kết trực tiếp.
Tiến trình truyền dữ liệu: thực hiện di chuyển dữ liệu trong
cự ly xa giữa máy tính và thiết bị nối kết từ xa.
Điều khiển: bên trong hệ thống máy tính, đơn vị điều khiển có nhiệm vụ quản lý các tài nguyên máy tính và điều phối sự vận hành của các thành phần chức năng phù hợp với yêu cầu nhận được từ người sử dụng.
Trang 5Tương ứng với các chức năng tổng quát nói trên, có bốn
loại hoạt động có thể xảy ra gồm:
Hình 1.2 (a): Máy tính - Thiết bị di chuyển dữ liệu
Trang 6Máy tính được dùng để lưu trữ dữ liệu, với dữ liệu được chuyển từ môi trường ngoài vào lưu trữ trong máy (quá trình đọc dữ liệu) và ngược lại:
Hình 1.2 (b): Máy tính - Thiết bị lưu trữ dữ liệu
Trang 7Máy tính được dùng để xử lý dữ liệu thông qua các thao tác trên dữ liệu lưu trữ:
Hình 1.2 (c): Máy tính - Thiết bị xử lý dữ liệu lưu trữ
Trang 8Máy tính được dùng để xử lý dữ liệu thông qua việc kết hợp giữa việc lưu trữ và liên lạc với môi trường bên ngoài:
Hình 1.2 (d): Máy tính - Thiết bị xử lý/ trao đổi
dữ liệu với môi trường ngoài
Trang 9CẤU TRÚC
Máy tính được mô tả với bốn cấu trúc chính:
Hình 1.3: Cấu trúc tổng quát của máy tính
Trang 10Đơn vị xử lý trung tâm (CPU – Central Processing Unit): điều khiển hoạt động của máy tính và thực hiện các chức năng xử lý dữ liệu CPU thường được
đề cập đến với tên gọi bộ xử lý
Bộ nhớ chính: dùng để lưu trữ dữ liệu.
Các thành phần nhập xuất: dùng để di chuyển dữ liệu giữa máy tính và môi trường bên ngoài.
Các thành phần nối kết hệ thống: cung cấp cơ chế liên lạc giữa CPU, bộ nhớ chính và các thành phần nhập xuất
Trang 11Hình 1.4 Thể hiện cấu trúc của CPU
Trang 12Cấu trúc của CPU với các thành phần chính gồm:
Đơn vị điều khiển: điều khiển hoạt động của CPU
và do đó hoạt động của máy tính.
Đơn vị luận lý và số học (ALU – Arithmetic and Logic Unit): thực hiện các chức năng xử lý dữ liệu của máy tính.
Tập thanh ghi: cung cấp nơi lưu trữ bên trong
CPU.
Thành phần nối kết nội CPU: cơ chế cung cấp khả năng liên lạc giữa đơn vị điều khiển, ALU và tập thanh ghi.
Trang 13Hình 1.3: Đơn vị điều khiển của CPU
Trang 14Chương 2: Lịch sử máy tính
hệ thứ nhất sử dụng công nghệ đèn chân không.
hệ thứ hai sử dụng công nghệ chất bán dẫn.
hệ thứ ba sử dụng công nghệ mạch tích hợp.
hệ thứ tư sử dụng công nghệ mạch tích hợp vô cùng lớn/siêu lớn (VLSI/ULSI).
Trang 15Hình 2.1 Cấu trúc của máy IAS
Trang 16Cấu trúc tổng quát của máy IAS:
Một bộ nhớ chính để lưu trữ dữ liệu và chương trình.
Một đơn vị số học – luận lý (ALU – Arithmetic and Logic Unit) có khả năng thao tác trên dữ liệu nhị phân.
Một đơn vị điều khiển có nhiệm vụ thông dịch các chỉ thị trong bộ nhớ và làm cho chúng được thực thi.
Thiết bị nhập/xuất được vận hành bởi đơn vị điều khiển.
Trang 17Bộ nhớ của máy IAS = 1000 word
Mỗi word = 40 chữ số nhị phân (40 bit)
Cả dữ liệu và chỉ thị đều được lưu trong word
Số được biểu diễn trong hệ nhị phân
Chỉ thị cũng có các mã nhị phân tương ứng
Mỗi số được biểu diễn bằng 1 bit dấu và một giá trị
39 bit.
Một word có thể chứa 2 chỉ thị 20 bit
Mỗi chỉ thị gồm một mã thao tác 8 bit (op code) đặc
tả thao tác sẽ được thực hiện và một địa chỉ 12 bit định hướng đến một word trong bộ nhớ (địa chỉ này
đi từ 0 đến 999).
Trang 18Hình 2.2 Các dạng thức bộ nhớ của máy IAS
Trang 19Hình 2.3 Cấu trúc mở rộng của máy tính IAS
Trang 20Thanh ghi vùng đệm bộ nhớ (MBR): chứa word sẽ được lưu trữ vào bộ nhớ, hay nhận word từ bộ nhớ.
Thanh ghi địa chỉ bộ nhớ (MAR): đặc tả địa chỉ trong bộ nhớ
sẽ được ghi/đọc từ/vào MBR.
Thanh ghi chỉ thị (IR): chứa mã thao tác (op code) 8 bit của chỉ thị được thực thi.
Thanh ghi vùng đệm chỉ thị (IBR): được tận dụng để lưu tạm thời chỉ thị bên phải trong một word của bộ nhớ.
Bộ đếm chương trình (PC): chứa địa chỉ của cặp chỉ thị kế tiếp được lấy ra từ bộ nhớ.
Bộ tích lũy (AC) và Bộ nhân – thương số (MQ): được tận dụng
để lưu tạm thời các toán hạng và kết quả các thao tác của ALU
Ví dụ, kết quả của phép nhân 2 số 40 bit là 1 số 80 bit thì phần
40 bit hiệu lực nhất được lưu trong AC, phần 40 bit còn lại lưu trong MQ.
Trang 22Thanh ghi vùng đệm bộ nhớ (MBR): chứa word sẽ được lưu trữ vào bộ nhớ, hay nhận word từ bộ nhớ.
Thanh ghi địa chỉ bộ nhớ (MAR): đặc tả địa chỉ trong bộ nhớ
sẽ được ghi/đọc từ/vào MBR.
Thanh ghi chỉ thị (IR): chứa mã thao tác (op code) 8 bit của chỉ thị được thực thi.
Thanh ghi vùng đệm chỉ thị (IBR): được tận dụng để lưu tạm thời chỉ thị bên phải trong một word của bộ nhớ.
Bộ đếm chương trình (PC): chứa địa chỉ của cặp chỉ thị kế tiếp được lấy ra từ bộ nhớ.
Bộ tích lũy (AC) và Bộ nhân – thương số (MQ): được tận dụng
để lưu tạm thời các toán hạng và kết quả các thao tác của ALU
Ví dụ, kết quả của phép nhân 2 số 40 bit là 1 số 80 bit thì phần
40 bit hiệu lực nhất được lưu trong AC, phần 40 bit còn lại lưu trong MQ.
Trang 23Chương 3: Đường truyền hệ thống
Các thành phần của máy tính
Chức năng cơ bản của máy tính
Các cấu trúc liên kết bên trong một máy tính Liên kết đường truyền
Trang 24Tất cả các thiết kế máy tính hiện nay đều dựa trên các khái niệm do John von Neumann đưa
ra Một thiết kế như vậy được đề cập đến với tên gọi kiến trúc von Neumann Kiến trúc này dựa trên ba khái niệm chính sau:
Dữ liệu và chỉ thị được lưu trong một bộ nhớ đọc/ghi.
Nội dung của bộ nhớ này có thể định địa chỉ theo vị trí Sự định địa chỉ này không phụ thuộc kiểu dữ liệu của vị trí nhớ.
Việc thực thi xuất hiện theo kiểu tuần tự từ chỉ thị này sang chỉ thị khác.
Trang 25• Có một tập hợp nhỏ các thành phần luận lý cơ bản có thể kết
hợp theo nhiều cách khác nhau để lưu trữ dữ liệu nhị phân và thực hiện các thao tác luận lý số học trên dữ liệu
• Có một tính toán cụ thể được thực hiện
• Xây dựng một cấu hình cho tính toán đó bằng quá trình kết
nối các thành phần khác nhau thành cấu hình mong muốn như một dạng lập trình "Chương trình" thu được ở dạng phần
cứng và được gọi là chương trình đấu dây chết
⇒ Xây dựng một cấu hình đa dụng với các chức năng luận lý và
số học Tập hợp phần cứng này sẽ thực hiện nhiều chức năng trên dữ liệu dựa vào tín hiệu điều khiển áp dụng cho nó Do vậy, thay vì phải đấu dây lại phần cứng cho mỗi chương trình mới, lập trình viên chỉ cần cung cấp một tập tín hiệu điều khiển mới
⇒ Toàn bộ chương trình thực chất là một dãy các bước Tại mỗi
bước, một thao tác luận lý hay số học nào đó được thực hiện trên dữ liệu dựa trên một tập hợp các tín hiệu điều khiển mới
⇒ Mỗi tập tín hiệu = một mã
⇒ Thêm vào phần cứng đa dụng một phân đoạn cho phép nhận
mã và sinh ra các tín hiệu điều khiển
⇒ Dãy các mã hay chỉ thị = phần mềm.
Trang 27• Hai thành phần chính của hệ thống: một bộ thông
dịch chỉ thị + một module gồm các chức năng luận
lý số học đa dụng = CPU.
• Dữ liệu và chỉ thị phải được nhập vào hệ thống
thông qua một module chứa các thành phần cơ bản cho việc tiếp nhận dữ liệu và chỉ thị ở một dạng thức nào đó Sau đó module này sẽ chuyển đổi thông tin nhận được thành một dạng nội tại gồm những tín hiệu mà hệ thống có thể hiểu được
• Một phương tiện để báo cáo kết quả cũng không
thể thiếu được, và đây là một dạng của một module xuất
⇒ Kết hợp cả hai module lại với nhau, chúng ta có các
thành phần nhập/xuất.
Trang 28• Chúng ta còn cần đến một thành phần khác nữa
Một thiết bị nhập mang chỉ thị và dữ liệu đến một cách tuần tự nhưng chương trình thì không phải lúc nào cũng thực thi tuần tự (ví dụ với lệnh jump của IAS) Một cách tương tự, các thao tác trên dữ liệu
có thể yêu cầu truy xuất đến nhiều hơn một phần
tử tại một thời điểm trong một dãy đã xác định trước Do đó cần phải có chỗ để lưu tạm thời cả chỉ
thị và dữ liệu Module đó được gọi là bộ nhớ, hay
bộ nhớ chính để phân biệt với các thiết bị ngoại vi
hay lưu trữ bên ngoài máy tính Von Neumann đã chỉ ra rằng bộ nhớ có thể dùng để lưu cả chỉ thị và
dữ liệu Dữ liệu là những thứ trên đó các tính toán được thực hiện còn chỉ thị là những thứ sẽ được thông dịch với tư cách mã sinh ra tín hiệu điều khiển.
Trang 30• Chức năng cơ bản của máy tính là thực thi chương
trình Chương trình được thực thi gồm một dãy các chỉ thị được lưu trữ trong bộ nhớ Đơn vị xử lý trung tâm (CPU) đảm nhận việc thực thi này.
• Quá trình thực thi chương trình = Lặp lại (CPU đọc
Trang 31Hình 3.3 Chu kỳ chỉ thị cơ sở
Trang 32Các chu kỳ lấy và thực thi chỉ thị
• Ở đầu mỗi chu kỳ chỉ thị, CPU lấy một chỉ thị từ bộ nhớ Một
thanh ghi gọi là bộ đếm chương trình (PC) được sử dụng để theo dõi chỉ thị cần lấy ra kế tiếp Trừ khi được chỉ ra rõ ràng, CPU luôn tăng PC sau khi mỗi chỉ thị được lấy ra để trỏ đến chỉ thị kế tiếp trong dãy chỉ thị
• Chỉ thị được lấy ra sẽ được tải vào một thanh ghi trong CPU có
tên gọi là thanh ghi chỉ thị (IR) Chỉ thị này ở dạng mã nhị phân đặc tả hoạt động CPU cần thực hiện CPU thông dịch chỉ thị và thực hiện hoạt động được yêu cầu
• Một cách tổng quát, các hoạt động này rơi vào một trong bốn
nhóm sau:
CPU – Bộ nhớ: dữ liệu có thể được chuyển từ CPU vào bộ nhớ
hay ngược lại
CPU – Thành phần nhập/xuất: dữ liệu có thể được truyền từ
bên ngoài vào CPU thông qua việc liên lạc giữa CPU và một module nhập/xuất
Xử lý dữ liệu: CPU có thể thực hiện thao tác luận lý hay số học
trên dữ liệu
Điều khiển: một chỉ thị có thể đặc tả sự thay đổi thứ tự thực
thi của dãy chỉ thị
Trang 33Hình 3.4 Các đặc trưng của một máy giả
Trang 35Chức năng nhập/xuất
• Một module nhập/xuất có thể trao đổi dữ liệu trực tiếp với
CPU Tương tự như việc CPU có thể khởi động một thao tác đọc/ghi bộ nhớ, định địa chỉ của một vị trí cụ thể, CPU cũng
có thể đọc/ghi dữ liệu vào/ra một module nhập/xuất Trong trường hợp này, CPU chỉ định một thiết bị cụ thể được điều khiển bởi một module nhập/xuất Do đó, một dãy chỉ thị có dạng tương tự như trong hình 3.5 có thể xuất hiện với các chỉ thị nhập/xuất hơn là với các chỉ thị tham chiếu bộ nhớ
• Trong một số trường hợp, người ta mong muốn là có thể cho
phép các trao đổi nhập/xuất xuất hiện trực tiếp với bộ nhớ Trong tình huống đó, CPU trao quyền cho một module nhập/xuất để đọc/ghi bộ nhớ sao cho việc truyền dữ liệu giữa
bộ nhớ – bộ phận nhập/xuất có thể xuất hiện không cần đến
sự can thiệp của CPU Trong quá trình truyền dữ liệu đó, module nhập/xuất tạo ra các lệnh đọc/ghi vào bộ nhớ, thay thế vai trò của CPU trong việc trao đổi dữ liệu Thao tác này được biết đến với tên gọi truy xuất bộ nhớ trực tiếp (DMA)
Trang 36• Một máy tính bao gồm một tập các thành phần hay
module thuộc ba kiểu cơ bản (CPU, bộ nhớ, thiết bị nhập xuất) liên lạc với nhau Trong thực tế, một máy tính có thể được xem như một mạng gồm những thành phần cơ bản Do đó phải có các đường dẫn nối các module lại với nhau.
• Tập hợp các đường dẫn nối kết vô số module được
gọi là cấu trúc liên kết Sự thiết kế cấu trúc này sẽ
phụ thuộc vào những trao đổi cần được thực hiện giữa các module.
Trang 37• Bộ nhớ: Một module bộ nhớ sẽ bao gồm N word có độ dài
bằng nhau Mỗi word được gán cho một địa chỉ duy nhất (0, 1, ,N-1) Một word dữ liệu có thể được đọc từ hay ghi vào bộ nhớ Bản chất của thao tác sẽ được chỉ ra bởi các tín hiệu điều khiển Đọc và Ghi Vị trí của thao tác được đặc tả thông qua địa chỉ
• Module nhập/xuất: Nếu nhìn từ quan điểm của một hệ thống
máy tính, thành phần nhập xuất giống với bộ nhớ về mặt chức năng Ở đây có hai thao tác là đọc và ghi Hơn nữa, một module nhập/xuất có thể điều khiển nhiều hơn một thiết bị ngoại vi Chúng ta có thể đề cập đến từng giao diện của một
thiết bị ngoại vi như một cổng và cho nó một địa chỉ duy nhất
(ví dụ 0, 1, , M-1) Ngoài ra, còn có các đường dữ liệu ngoài cho việc nhập xuất dữ liệu với một thiết bị ngoại vi Cuối cùng, một module nhập/xuất có thể gửi tín hiệu ngắt đến CPU
• CPU: CPU đọc vào các chỉ thị và dữ liệu, ghi ra dữ liệu sau khi
xử lý, và sử dụng các tín hiệu điều khiển để điều phối hoạt động của toàn thể hệ thống Nó cũng nhận các tín hiệu ngắt
Trang 38Hình 3.6 Các module máy tính
Trang 39Bộ nhớ đến CPU: CPU đọc một chỉ thị hay một đơn vị
CPU đến thành phần nhập/xuất: CPU gửi dữ liệu đến thiết bị nhập/xuất.
Thành phần nhập/xuất đến hay từ bộ nhớ: Đối với hai trường hợp này, một module nhập/xuất được cho phép trao đổi dữ liệu trực tiếp với bộ nhớ mà không qua CPU bằng cách sử dụng cơ chế truy cập bộ nhớ trực tiếp (DMA).
Trang 40• Đường truyền là một hành lang nối kết nhiều thiết bị
• Một đường truyền = nhiều đường Mỗi đường có khả
năng truyền tín hiệu nhị phân 0 và 1
• Một dãy các chữ số nhị phân có thể được truyền theo thời
gian trên cùng một đường
• Khi hợp lại với nhau, nhiều đường của một đường truyền
có thể được sử dụng để truyền các chữ số nhị phân cùng một lúc một cách song song Ví dụ, một đơn vị dữ liệu 8 bit có thể được truyền qua 8 đường của một đường truyền.
• Hệ thống máy tính = nhiều loại đường truyền khác nhau
cung cấp các hành lang giữa các thành phần tại nhiều mức trong sự phân cấp
Trang 41• Đường truyền kết nối các thành phần chính của
máy tính như CPU, bộ nhớ, thành phần nhập/xuất
được gọi là một đường truyền hệ thống Một máy
tính sẽ sử dụng một hay nhiều đường truyền hệ thống.
• Một đường truyền hệ thống thường có từ 50 đến
100 đường riêng biệt Mỗi đường được gán một ý nghĩa hay chức năng cụ thể
• Các đường có thể được phân thành ba nhóm chức
năng:
Dữ liệu Địa chỉ Điều khiển, đường nguồn