Giáo trình Cấu trúc máy tính
MỤC LỤC
Chương1 . 3
Kiến trúc máy vi tính PC và đơn vị xử lý trung tâm. 3
1.1. Các thành phần cơ bản của máy tính số . 3
1.2. Biểu diễn thông tin trong máy tính số. 5
1.3 Kiến trúc cơ bản máy vi tính PC. 14
1.4. Đơn vị xử lý trung tâm CPU (Central Proccessing Unit) . 18
1.4.1. Cấu hình bên ngoài . 18
1.4.2. Cấu hình bên trong. 21
1.4.3. Quản lý bộ nhớ trong chế độ thực và các thanh ghi đoạn. 21
1.4.4. Các thanh ghi . 24
1.4.5 Quản lý bộ nhớ trong chế độ bảo vệ . 27
1.4.6. Cơ chế đa nhiệm . 35
1.4.7 Các chế độ xác định địa chỉ toán hạng. 36
1.5. Kỹ thuật đường ống và kỹ thuật xử lý song song mức lệnh. 40
1.5.1. Kỹ thuật xử lý lệnh kiểu đường ống (Pipeline). 41
1.5.2. Kỹ thuật ILP (xử lý song song mức lệnh) . 42
Chương 2 . 43
Tổ chức bộ nhớ trong máy vi tính PC. 43
2.1. Tổ chức bộ nhớ theo phân cấp. 43
2.2. Tổ chức cache . 45
2.2.1. Trường hợp mỗi khối chứa một từ (hoặc 1 byte) dữ liệu . 45
2.2.2. Trường hợp mỗi khối chứa nhiều từ dữ liệu. 47
2.2.3. Kỹ thuật tập liên hợp . 47
2.3 Tổ chức bộ nhớ máy vi tính PC . 48
2.3.1. Cơ chế quản lý bộ nhớ theo phân trang. 48
2.3.2 Cơ chế truy nhập bộ nhớ theo trang . 50
Chương 3 . 52
Các phương pháp vào ra dữ liệu trong máy vi tính . 52
3.1. Cấu trúc phần cứng của hệ thống vào/ra dữ liệu. 52
3.2. Các phương pháp vào/ra dữ liệu . 52
3.2.1 Phân loại . 52
3.2.2 Phương pháp vào/ra dữ liệu theo định trình. 53
3.2.3 Phương pháp vào/ra dữ liệu theo kiểu thăm dò . 54
3.2.4 Phương pháp vào/ra dữ liệu theo ngắt cứng . 55
3.2.5 Phương pháp vào/ra dữ liệu theo kiểu DMA (truy nhập trực tiếp bộ nhớ - Direct
Memory Access) . 57
Chương 4 . 59
Các thiết bị vào ra. 59
4.1 Các thiết bị giao diện và điều khiển vào/ra dữ liệu. 59
4.1.1 Ngắt và bộ điều khiển ngắt PIC 8259. 59
4.1.2 Truy nhập trực tiếp bộ nhớ và bộ điều khiển DMAC 8237 . 68
4.1.3 Vào-ra nối tiếp và thiết bị giao diện vào-ra nối tiếp UART 8250/16450 . 752
4.1.4 Thiết bị giao diện song song. 83
4.2. Các thiết bị ngoại vi. 86
4.2.1. Bàn phím . 86
4.2.2 Màn hình . 90
4.2.3 Đĩa từ . 93
7C00h. Đó cũng là lý do vì sao byte đầu tiên của cung khởi động luôn chứa mã lệnh nhảy không điều kiện. Cung khởi động chứa các dữ liệu mà từ đó có thể tính ra được vị trí bắt đầu và kích thước (theo đơn vị cung) của các vùng thông tin trên volume. Bảng FAT (File Allocation Table) Hệ điều hành lưu trữ tệp trong vùng chứa tệp. Vùng chắ tệp nằm sau thư mục gốc và chiếm toàn bộ không gian còn lại của volume. Vùng chứa tệp được coi là tập hợp của các cluster. Cluster là tập hợp của một hoặc nhiều cung lion nhau. Cluster là đơn vị lưu trữ thông tin nhỏ nhất mà hệ điều hành dùng để lưu trữ tệp. Các cluster được đánh số thứ tự bắt đầu từ 2 và tăng dần đến hết volume. Bảng FAT nằm ngay sau cung khởi động. Mỗi volume thường có hai bảng FAT # 1 và # 2, nội dung hai bảng này giống hệt nhau. Bảng FAT được dùng để quản lý các cluster. Bảng FAT chứa các lối vào (entry). Kích thước của một lối vào có thể là 12, 16 hoặc 32 bit, tuỳ thuộc vào kích thước của volume và các tổ chức hệ tệp. Hai lối vào đầu tiên trong bảng FAT được dùng để chỉ ra các dạng tổ chức của đĩa. Số lượng các lối vào còn lại đúng bằng số lượng các cluster. Các lối vào này cũng được đánh số thứ tự bắt đầu từ 2 và tăng dần cho đến tận lối vào cuối cùng trong bảng FAT. Mỗi một lối vào, bắt đầu từ lối vào số 2, chứa một thông tin về trạng thái của cluster có số thứ tự tương ứng. Thông tin về trạng thái của cluster được thể hiện dưới dạng mã nhị phân như sau Bảng FAT đóng vai trò một bản đồ về trạng thái các cluster. Từ bảng FAT có thể tìm ra được một chuỗi danh sách các cluster thuộc một tệp nào đó, nhưng còn thiếu thông tin về cluster đầu tiên của tệp. Thông tin này gắn với một tệp cụ thể và nằm ở thư mục. Thư mục gốc: Mỗi volume có một thư mục gốc. Thư mục gốc nằm sau bảng FAT #2. Thư mục gốc chứa các lối vào thư mục (Directory Entry), mỗi lối vào thư mục có kích thước 32 byte. Thư mục gốc có kích thước hạn chế xác định trước. Lối vào thư mục chứa các thông tin (tên tệp, thuộc tính, kích thước v.v.) của 103 một tệp đang được lưu trữ trên volume và số thứ tự cluster đầu tiên của tệp đó. Lối vào thư mục có cấu trúc như sau : - Byte đầu tiên của phần tên tệp có thể chứa các thông tin đặc biệt sau : 00h : báo thư mục kết thúc ở đây. e5h : Tệp bị xoá 2eh : Lối vào thư mục của thư mục hiện thời. Lối vào này chứa thông tin về vị trí và kích thước của chính thư mục đang chứa lối vào này. 2eh 2eh : Lối vào thư mục mẹ của thư mục hiện thời. Lối vào này chứa thông tin về vị trí và kích thước của thư mục mẹ của thư mục đang chứa lối vào này. Nhờ thông tin này mà từ thư mục hiện thời ta có thể chuyển về thư mục mẹ. Trường thời gian được mã hoá như sau : Trường ngày được mã hóa như sau: - Trường thuộc tính tệp, khi bit được đặt bằng 1 thì mang thông tin như sau: Cấu trúc của thư mục con giống như thư mục gốc. Thư mục con nằm ở vùng chứa tệp và thư mục con. Thư mục con được quản lý như một tệp thông thường và có kích thước không hạn chế. Vùng chứa tệp và thư mục con 104 vùng chứa tệp và thư mục con là toàn bộ vùng còn lại nằm sau thư mục gốc. Vùng nay được coi là tập hợp của các cluster. Các cluster được đánh số thứ tự bắt đầu từ 2 và tăng dần đến cluster cuối cùng trong volume. Trạng thái của các cluster được phản ánh bởi lối vào tương ứng trong bảng FAT. Các thư mục con nằm ở vùng này. thư mục con được quản lý như một tệp thông thường và có kích thước không hạn chế. Một tệp được lưu trữ trên một hoặc nhiều cluster khác nhau, tuỳ thuộc kích thước tệp. Các cluster chứa dư liệu của một tệp không nhất thiết phải liền kề nhau. Nếu volume chứa hệ thống khởi động hệ điều hành thì các cluster đầu tiên của vùng này được dành để chứa các tệp hệ thống của hệ điều hành. 4.2.3.5 Mối quan hệ giữa thư mục, bảng FAT và cluster Mối quan hệ giữa bảng FAT và cluster đã được trình bày ở mục về bảng FAT. Mối quan hệ giữa thư mục, bảng FAT và cluster trong việc quản lý một tệp được minh họa qua ví dụ cụ thể sau: Giả sử có tệp tên MYFILE.DAT, tên tệp nằm tại thư mục gốc. Trong thư mục gốc ta có thể tìm thấy và đọc được một lối vào thư mục có nội dung sau: Các byte 00h - 0Ah: Mã ASCII của tên tệp MYFILE.DAT Byte 0B:20h - tệp lưu trữ Byte 1A-1Bh: (0)003h – Số thứ tự của cluster đầu tiên của tệp. Lối vào đầu tiên của tệp trên bảng FAT cũng là (0)003h. Byte 1Ch – 1Fh: Kích thước tệp 0542h≡1346 byte 105 Quá trình truy cập tệp ở mức thấp bắt đầu từ việc tìm kiếm thư mục chứa tên tệp. Trong thư mục sẽ tìm được lối vào thư mục có chứa tên tệp cần truy cập, ví dụ lối vào thư mục có chứa tên tệp MYFILE.DAT. Từ lối vào thư mục này tìm được địa chỉ (số thứ tự) cluster đầu tiên của tệp MYFILE.DAT, ví dụ (0)003h. Con số (0)003h cũng là số thứ tự đầu tiên của tệp này trong bảng FAT. Thao tác tiếp theo là tìm đến bảng FAT. Lối vào đầu tiên cần đọc là (0)003h. Lối vào (0)003h chứa con số (0)004h, con số này phản ánh hai thông tin : một là cluster số (0)003h đang chứa một phần của tệp, hai là cluster tiếp theo của tệp là (0)004h. Từ đây tiếp tục truy nhập và đọc lối vào số (0)004h v.v. Cho đến khi gặp lối vào chứa giá trị (F)FFFh thì dừng tìm kiếm. Ví dụ ở đây ta có danh sách các cluster chứa tệp là (0)003h, (0)004h, (0)005h. Tổng quát mà nói, từ lối vào vị trí I ta đọc được nôi dung J, nếu J thuộc khoảng giá trị (0)002h - (F)FFFh thì nó phản ánh hai thông tin : cluster thứ I đang chứa tệp và cluster thứ J là cluster tiếp theo của tệp. Quá trình tìm kiếm danh sách các cluster chứa tệp dừng khi gặp lối vào chứa giá tri (F)FFFh. Cluster tương ứng lối vào này là cluster cuố cùng của tệp. Trên thực tế không phải bao giơ cũng nhận được chuỗi danh sách các cluster liền kề nhau. Để truy nhập tệp trên đĩa cần phải chuyển danh sách các cluster chứa tệp thành danh sách các cung logic. Công thức chuyển đổi địa chỉ (số thứ tự) cluster thành địa chỉ (số thứ tự) cung logic như sau : Địa chỉ cung logic = (địa chỉ cluster - 2) *(số lượng cung trên một cluster) + địa chỉ cung logic đầu tiên của vùng dữ liệu. Quá trình truy nhập cung khởi động, bảng FAT và tệp có thể thực hiện nhờ các ngắt 25h và 26h. Khi truy nhập tệp và đọc vào bộ nhớ cần lưu ý dữ liệu của tệp chỉ chứa một phần của cluster cuối cùng chứ không phải toàn bộ cluster này. Thông tin về kích thước tệp giúp xác định chính xác lượng dữ liệu thật của tệp trên cluster cuối cùng. 106 4.2.3.6 Bảng phân khu (ParTition table) Một ổ cứng vật lý có thể được phân chia thành nhiều phân khu (Partition) và từ mỗi phân khu tạo ra được một volume tách biệt. Việc tạo ra các phân khu cho phép ta có thể cài đặt nhiều hệ điều hành và hệ thống tệp riêng biệt trong cùng một ổ cứng vật lý. Các hệ thống tệp khác nhau (ví dụ như hệ tệp FAT, FAT32, NTFS v.v) sẽ sử dụng các phương pháp riêng để phân chia và quản lý không gian lưu trữ tệp. Mỗi ổ cứng phải có ít nhất một phân khu và có thể có tối đa 4 phân khu chính. Với hệ thống tệp FAT quá trình tạo phân khu có thể thực hiện bằng lệnh FDISK của hệ điều hành. Thông tin về cách phân chia ỏ đĩa cính thành các phân khu được chứa trong bảng phân khu. Hệ điều hành được sử dụng 1 vùng riêng và cố định trên ổ đĩa cứng để chứa bảng phân khu, đó là cung vật lý một trên rãnh 0 của mặt 0. Cung vật lý đầu tiên của ổ đĩa cứng ( mặt 0 rãnh 0, cung 1) không chứa cung me khởi động volume (Volume Boot Record) mà chứa cung khởi động chính (Master Boot Record – MBR). - Cung khởi động chính có cấu trúc như sau: Địa chỉ offset(hexadecimal) Nội dung 000 Chương trình đọc cung khởi động 1BE Bảng phân khu chính 1FE Chữ ký AA55h Cung khởi động chính chứa chương trình đọc Bảng phân khu chính và cung khởi động. Chức năng của chương trình đọc cung khởi động là chuyển điều khiển hệ thống đến chương trình khởi động hệ điều hành, chương trình này nằm trong cung khởi động của phân khu khởi động. Bảng phân khu chính chứa các lối vào phân khu (Partition Entry). Bảng phân khu chính có ít nhất 1 lối vào phân khu và nhiều nhất 4 lối vào phân khu. Lối vào phân khu chứa thông tin về vị trí và kích thước của phân khu trong ổ đĩa cứng. Bảng phân khu chính có cấu trúc như sau: Mỗi một lối vào phân khu mang thông tin về phân khu tương ứng: vị trí (mặt, rãnh,cung) bắt đầu phân khu, vị trí (mặt, rãnh, cung) kết thúc phân khu, kích thước phân khu (tính theo đơn vị cung) Cấu trúc của một lối vào phân khu: Địa chỉ offset(hexadecimal) Nội dung Kích thước (byte) 107 00 Chỉ thị khởi động 1 01 Địa chỉ đầu phân khu 3 04 Chỉ thị hệ thống 1 05 Địa chỉ cuối phân khu 3 08 Số lượng cung trước phân khu 4 0c Số lượng cung trong phân khu 4 Chỉ thị khởi động: 80h: Phân khu khởi động (Khởi động hệ điều hành từ phân khu này) 00h: Phân khu không tích cực Chỉ thị hệ thống: cho biết loại hệ thống tệp được sử dụng trong phân khu 01h FAT 12 06h,0Eh FAT16 07h NTFS 0Bh FAT32 Khuôn dạng của trường địa chỉ đầu/địa chỉ cuối phân khu: Địa chỉ mặt là một số nhị phân 8 bit: H7-H0. Số mặt tối đa có thể là 256 Địa chỉ cung là một số nhị phân 6 bit: S5-S0. Số cung tối đa có thể là 63 Địa chỉ rãnh là một số nhị phân 10bit: C9-C0.Số rãnh tối đa có thể là 1024 Nội dung một lối vào phân khu có thể như sau: Phân khu này là phân khu khởi động Địa chỉ đầu phân khu: Mặt 1, rãnh 0, cung vật lý 1 Địa chỉ cuối phân khu: Mặt 4, rãnh 964, cung vật lý 34 Kích thước phân khu: 023290h = 164016 cung Tại mỗi phân khu có thể thực hiện định dạng (mức cao) để tạo volume và cài đặt hệ điều hành trên các volume đó. 108 Tài liệu tham khảo : [1] Vũ Chấn Hưng, Giáo trình kiến trúc máy tính, nhà xuất bản giao thông vận tải, 2004 [2] Nguyễn Nam Trung,Cấu trúc máy vi tính và thiết bị ngoại vi.Nhà xuất bản Khoa học kỹ thuật. 2000. [3] Nguyễn Trung Đồng- Bui Hoa, Giáo trình kỹ thuật vi xử lý, Khoa CNTT [4] Daniel Tabak, Advanced Microprocessors. McGraw-Hill, Inc. 1995. [5] William Stalling, Computer Architecture.
File đính kèm:
- Kiến trúc máy tính.pdf