Một hệ điều hành khai thác tàinguyên của một hoặc nhiều bộ xử lý để cung cấp các dịch vụ cho hệ thống người dùng. Hệ điều hành cũng quản lí bộ nhớ thứ cấp và các thiết bị nhập xuất trên các máy của người dùng. Do đó một số hiểu biết cơ bản về phần cứng hệ thống máy vi tính rất quan trọng khi chúng ta bắt đầu sự xem xét các hệ điều hành Tổng quan về phần cứng hệ thống máy vi tính bao gồm các thành phần sau: * Basic Elements - Các thành phần cơ bản. * Processor Register - Các thanh ghi bộ xử lý. o User-Visible Registers - Các thanh ghi người dùng có thể lập trình được. o Control and Status Registers - Điều khiển và các thanh ghi trạng thái. * Instruction Excution - Thực thi chỉ thị. Instruction Fetch and Excution - Tìm nạp chỉ thị và thực thi. o I/O Function - Chức năng nhập xuất. * Interrupts - Các ngắt. Interrupts and the Instruction Cycle - Các ngắt và chỉ thị vòng. o Interrupt Processing - Xử lý ngắt. o Multiple Interrupts- Ngắt đa năng. o Multiprogramming - Sự đa chương. * The Memory Hierarchy - Bộ nhớ đẳng cấp. * Cache Memory - Bộ nhớ cạc (Bộ nhớ truy cập nhanh) o Motivation - Động cơ thúc đẩy o Cache Principles - Nguồn gốc cạc o Cache Design - Thiết kế cạc. * I/O Communication Techniques - Các kĩ thuật truyền thông nhập xuất. o Interrupt,Driver I/O - Ngắt, driver nhập xuất. o Direct Memory Access - Kênh truy cập trực tiếp bộ nhớ. * Recommended Reading - * Problems - Các vấn đề. Tuy nhiên trong phạm vi bài báo cáo này chỉ trình bày các nội dung của các thành phần cơ bản và các thanh ghi bộ xử lý của hệ thống máy vi tính. 1 Các khái niệm: 2.1. Bộ nhớ chính : 2.1.1. Bộ nhớ truy cập ngẫu nhiên ( RAM - Random Access Memory ) Là bộ nhớ sơ cấp của máy tính, trong đó các chỉ lệnh chương trình và dữ liệu được lưu trữ sao cho bộ xử lý trung tâm ( CPU) có thể truy cập trực tiếp vào chúng thông qua buýt dữ liệu cao tốc của bộ xử lý đó. Để thực hiện các chỉ lệnh ở tốc độ cao, mạch xử lý của máy tính phải có khả năng thu nhận thông tin từ bộ nhớ một cách trực tiếp và nhanh chóng. Do đó, các bộ nhớ máy tính phải được thiết kế sao cho bộ xử lý có thể truy cập ngẫu nhiên vào các nội dung đó. RAM là một ma trận gồm các hàng và các cột có khả năng giữ các chỉ lệnh chương trình hay dữ liệu tại các giao điểm của hàng và cột đó. Mỗi một giao điểm có một địa chỉ riêng, nên CPU truy cập vào từng vị trí nhớ một cách trực tiếp bằng cách xác định địa chỉ rồi cho hoạt động một mạch điện tử để dẫn đến địa chỉ đó. RAM thường được gọi là bộ nhớ đọc/ghi để phân biệt với bộ nhớ chỉ đọc ( ROM), một bộ phận khác của bộ nhớ sơ cấp trong máy tính. CPU có thể ghi và đọc dữ liệu trong RAM. Hầu hết các chương trình đều dành riêng một phần RAM để làm khu vực nhớ tạm thời các dữ liệu của bạn, cho nên bạn có thể cải thiện (ghi lại) khi cần, cho đến khi dữ liệu được chuẩn bị xong để in ra hoặc lưu trữ vào đĩa. RAM bao gồm các mạch nhớ bán dẫn để thay đổi, nó không giữ lại được nội dung khi tắt điện máy tính. Một số loại RAM : a. SRAM (Static RAM) và DRAM (Dynamic RAM): SRAM là loại RAM lưu giữ data mà không cần cập nhật thường xuyên (static) trong khi DRAM là loại RAM cần cập nhật data thường xuyên (high refresh rate). Thông thường data trong DRAM sẽ được refresh (làm tươi) nhiều lần trong một second để lưu giử lại những thông tin đang lưu trữ, nếu không refresh lại DRAM thì dù nguồn điện không ngắt, thông tin trong DRAM cũng sẽ bị mất. SRAM chạy lẹ hơn DRAM. Nhiều người có thể lầm lẫn là DRAM là "dynamic" cho nên ưu việt hơn. Điều đó không đúng. Trên thực tế, chế tạo SRAM tốn kém hơn hơn DRAM và SRAM thường có kích cỡ lớn hơn DRAM, nhưng tốc độ nhanh hơn DRAM vì không phải tốn thời gian refresh nhiều lần. Sự ra đời của DRAM chỉ là một lối đi vòng để hạ giá sản xuất của SRAM . a. FPM-DRAM (Fast Page Mode DRAM) Ðây là một dạng cải tiến của DRAM, về nguyên lý thì FPM DRAM sẽ chạy lẹ hơn DRAM một lý do cải tiến cách dò địa chỉ trước khi truy cập thông tin. Những loại RAM như FPM hầu như không còn sản xuất trên thị trường hiện nay nữa. a. EDO-DRAM (Extended Data Out DRAM) Là một dạng cải tiến của FPM DRAM, nó chạy lẹ hơn FPM DRAM một nhờ vào một số cải tiến cách dò địa chỉ trước khi truy cập data. Một đặc điểm nữa của EDO DRAM là nó cần support của system chipset. Loại memory này chạy với máy 486 trở lên (tốc độ dưới 75MHz). EDO DRAM cũng đã quá cũ so với kỹ thuật hiện nay. EDO-DRAM chạy lẹ hơn FPM-DRAM từ 10 -15%. a. BDEO-DRAM (Burst Extended Data Out DRAM) Là thế hệ sau của EDO DRAM, dùng kỹ thuật "pineline technology" để rút ngắn thời gian dò địa chỉ của data. Nếu các chúng ta để ý những mẫu RAM trên theo trình tự kỹ thuật thì thấy là hầu hết các nhà chế tạo tìm cách nâng cao tốc độ truy cập thông tin của RAM bằng cách cải tiến cách dò địa chỉ hoặt cách chế tạo hardware. Vì việc giải thích về hardware rất khó khăn và cần nhiều kiến thức điện tử cho nên ở đây chỉ lướt qua hoặc trình bày đại ý. Nhiều mẩu RAM được trình bày có thể không còn trên thị trường nữa mà chỉ trình bày để chúng ta có một kiến thức chung mà thôi. SDRAM (Synchronous DRAM) Ðây là một loại RAM có nguyên lý chế tạo khác hẳn với các loại RAM trước. Như tên gọi của nó là "synchronous" DRAM, synchronous có nghĩa là đồng bộ. Synchronous là một khái niệm rất quan trọng trong lĩnh vực digital.Chúng ta chỉ cần biết là RAM hoạt động được là do một memory controller (hay clock controller), thông tin sẽ được truy cập hay cập nhật mỗi khi clock (dòng điện) chuyển từ 0 sang 1, "synchronous" có nghĩa là ngay lúc clock nhảy từ 0 sang 1 chứ không hẳn là clock qua 1 hoàn toàn (khi clock chuyển từ 0 sang 1 hay ngược lại, nó cần 1 khoảng thời gian interval, tuy vô cùng ngắn nhưng cũng mất 1 khoảng thời gian, SDRAM không cần chờ khoảng interval này kết thúc hoàn toàn rồi mới cập b. nhật thông tin, mà thông tin sẽ được bắt đầu cập nhật ngay trong khoảng interval). Do kỹ thuật chế tạo mang tính bước ngoặc này, SDRAM và các thế hệ sau có tốc độ cao hơn hẳn các loại DRAM trước.Đây là loại RAM thông dụng nhất trên thị trường hiện nay, tốc độ 66-100-133Mhz. c. DDR SDRAM (Double Data Rate SDRAM) Ðây là loại memory cải tiến từ SDRAM. Nó nhân đôi tốc độ truy cập của SDRAM bằng cách dùng cả hai quá trình đồng bộ khi clock chuyển từ 0 sang 1 và từ 1 sang 0. Ngay khi clock của memory chuyển từ 0 sang 1 hoặc từ 1 sang 0 thì thông tin trong memory được truy cập. Loại RAM này được CPU Intel và AMD hỗ trợ, tốc độ hiện tại vào khoảng 266Mhz. (DDR-SDRAM đã ra đời trong năm 2000). DRDRAM (Direct Rambus DRAM) Ðây lại là một bước ngoặc mới trong lĩnh vực chế tạo memory, hệ thống Rambus (cũng là tên của một hãng chế tạo nó) có nguyên lý và cấu trúc chế tạo hoàn toàn khác loại SDRAM truyền thống. Memory sẽ được vận hành bởi một hệ thống phụ gọi là Direct Rambus Channel có độ rộng 16 bit và một clock 400MHz điều khiển. (có thể lên 800MHz) Theo lý thuyết thì cấu trúc mới này sẽ có thể trao đổi thông tin với tốc độ 800MHz x 16bit = 800MHz x 2 bytes = 1.6GB/giây. Hệ thống Rambus DRAM như thế này cần một serial presence detect (SPD) chip để trao đổi với motherboard. Ta thấy kỹ thuật mới này dùng 16bits interface, trông trái hẳn với cách chế tạo truyền thống là dùng 64bit cho memory, bởi thế kỹ thuật Rambus (sở hữu chủ của Rambus và d. Intel) sẽ cho ra đời loại chân Rambus Inline Memory Module (RIMM) tương đối khác so với memory truyền thống. Loại RAM này hiện nay chỉ được hỗ trợ bởi CPU Intel Pentum IV, khá đắt, tốc độ vào khoảng 400-800Mhz e. SLDRAM (Synchronous-Link DRAM) Là thế hệ sau của DRDRAM, thay vì dùng Direct Rambus Channel với chiều rộng 16bit và tốc độ 400MHz, SLDRAM dùng bus 64bit chạy với tốc độ 200MHz. Theo lý thuyết thì hệ thống mới có thể đạt được tốc độ 400Mhz x 64 bits = 400Mhz x 8 bytes = 3.2Gb/giây, tức là gấp đôi DRDRAM. Ðiều thuận tiện là là SLDRAM được phát triển bởi một nhóm 20 công ty hàng đầu về vi tính cho nên nó rất da dụng và phù hợp nhiều hệ thống khác nhau. VRAM (Video RAM) Khác với memory trong hệ thống và do nhu cầu về đồ hoạ ngày càng cao, các hãng chế tạo graphic card đã chế tạo VRAM riêng cho video card của họ mà không cần dùng memory của hệ thống chính. VRAM chạy lẹ hơn vì ứng dụng Dual Port technology nhưng đồng thời cũng đắt hơn rất nhiều. f. SGRAM (Synchronous Graphic RAM) Là sản phẩm cải tiến của VRAM mà ra, đơn giản nó sẽ đọc và viết từng block thay vì từng mảng nhỏ. PC66, PC100, PC133, PC1600, PC2100, PC2400 Chắc khi mua sắm RAM chúng ta sẽ thấy họ đề cập đến những từ như trên. PC66, 100, 133MHz thì chúng ta có thể hiểu đó là tốc độ của hệ thống chipset của motherboard. Nhưng PC1600, PC2100, PC2400 thì có vẻ hơi .cao và quái lạ! Thực ra những từ nầy ra đời khi kỹ thuật Rambus phát triển. Ðặt điểm của loại motherboard nầy là dùng loại DDR SDRAM (Double Data Rate Synchronous Dynamic RAM). Như đã đề cập ở phần trên, DDR SDRAM sẽ chạy gấp đôi (trên lý thuyết) loại RAM bình thường vì nó dùng cả rising and falling edge của system clock. Cho nên PC100 bình thường sẽ thành PC200 và nhân lên 8 bytes chiều rộng của DDR SDRAM: PC200 * 8 = PC1600. Tương tự PC133 sẽ là PC133 * 2 * 8bytes = PC2100 và PC150 sẽ là PC150 * 2 * 8 = PC2400. 2.1.2.ROM (Read Only Memory): Ðây là loại bộ nhớ dùng trong các hãng sãn xuất là chủ yếu. Nó có đặc tính là thông tin lưu trữ trong ROM không thể xoá được và không sửa được, thông tin sẽ được lưu trữ mãi mãi. Nhưng ngược lại ROM có bất lợi là một khi đã cài đặt thông tin vào rồi thì ROM sẽ không còn tính đa dụng (xem như bị gắn "chết" vào một nơi nào đó). Ví dụ điển hình là các con "chip" trên motherboard hay là BIOS ROM để vận hành khi máy vi tính vừa khởi động. PROM (Programmable ROM) Mặc dù ROM nguyên thủy là không xoá/ghi được, nhưng do sự tiến bộ trong khoa học, các thế hệ sau của ROM đã đa dụng hơn như PROM. Các hãng sản xuất có thể cài đặt lại ROM bằng cách dùng các loại dụng cụ đặc biệt và đắt tiền (khả năng người dùng bình thường không thể với tới được). Thông tin có thể được "cài" vào chip và nó sẽ lưu lại mãi trong chip. Một đặc điểm lớn nhất của loại PROM là thông tin chỉ cài đặt một lần mà thôi. CD có thể được gọi là PROM vì chúng ta có thể copy thông tin vào nó (một lần duy nhất) và không thể nào xoá được. a. EPROM (Erasable Programmable ROM) Một dạng cao hơn PROM là EPROM, tức là ROM nhưng chúng ta có thể xoá và viết lại được. Dạng "CD-Erasable" là một điển hình. EPROM khác PROM ở chổ là thông tin có thể được viết và xoá nhiều lần theo ý người xử dụng, và phương pháp xoá là hardware (dùng tia hồng ngoại xoá) cho nên khá là tốn kém và không phải ai cũng trang bị được. b. EEPROM (Electronic Erasable Programmable ROM) Ðây là một dạng cao hơn EPROM, đặt điểm khác biệt duy nhất so với EPROM là có thể ghi và xoá thông tin lại nhiều lần bằng software thay vì hardware. Ví dụ điển hình cho loại EPROM nầy là "CD-Rewritable" nếu chúng ta ra cửa hàng mua một cái CD-WR thì có thể thu và xoá thông tin mình thích một cách tùy ý. Ứng dụng của EEPROM cụ thể nhất là "flash BIOS". BIOS vốn là ROM và flash BIOS tức là tái cài đặt thông tin (upgrade) cho BIOS. Cái tiện nhất ở phương pháp này là chúng ta không cần mở thùng máy ra mà chỉ dùng software điều khiển gián tiếp. Là sản phẩm kết hợp giữa RAM và hard disk. Có nghĩa là Flash memory có thể chạy nhanh như SDRAM mà và vẫn lưu trữ được data khi power off. Flash Memory: Truy cập ngẫu nhiên: Một phương pháp lưu trữ và truy tìm thông tin, trong đó máy tính có thể thâm nhập trực tiếp vào thông tin đó mà không cần phải tuần tự đi qua các vị trí. Thuật ngữ chính xác hơn là truy cập trực tiếp, nhưng thuật ngữ truy cập ngẫu nhiên đã trở nên gắn bó trong từ viết tắt RAM, được dùng phổ biến để chỉ bộ nhớ bên trong của máy PC-bộ nhớ truy cập ngẫu nhiên. Để hiểu sự khác nhau giữa truy cập ngẫu nhiên và truy cập tuần tự bạn hãy so sánh băng cassette (truy cập tuần tự) và đĩa hát nhựa (truy cập ngẫu nhiên). Để đến được bài hát mà bạn thích trên băng cassette, bạn phải cho chạy nhanh lần lượt qua các bài hát cho đến khi tìm được bài đó. Còn để đến được bài hát mà bạn thích trên đĩa, bạn chỉ cần đặt đầu kim đúng rãnh ghi. ổ đĩa máy tính cũng hoạt động tương tự như đĩa hát, bạn có thể di động đầu từ trên mặt đĩa từ và đến đúng rãnh mà bạn muốn 2.3. Hệ thống đường truyền : Bus là đường dẫn điện nội bộ mà theo đó các tín hiệu được truyền từ bộ phận này đến bộ phận khác trong máy tính. Máy tính cá nhân có thiết kế bus của bộ vi xử lý theo ba loại đường dẫn: - Bus dữ liệu truyền dữ liệu xuôi ngược giữa bộ nhớ và bộ vi xử lý. - Bus địa chỉ xác định vị trí nhớ nào sẽ được đưa vào hoạt động. - Bus điều khiển truyền các tín hiệu của các bộ phận điều khiển. Người ta sẽ phát triển bus dữ liệu của máy bằng cách nối bộ xử lý với một hoặc nhiều khe cắm mở rộng, và gọi là bus mở rộng ( expansion bus). bus dữ liệu, bus địa chỉ, và bus mở rộng đều được mắc nối theo những hàng dây dẫn song song, cho nên tất cả các bít cần gửi đi sẽ được truyền cùng một lúc đồng thời, giống như 16 hoặc 32 chiếc ô tô dàn hàng ngang cùng chạy về một hướng trên xa lộ cao tốc. Có ba loại cấu trúc bus thường gặp phổ biến trong thị trường máy tính IBM PC và tương thích PC. - Bus ISA ( Industry Standard Architecture). Đây là bus 16 bit, đầu tiên được xây dựng để dùng cho các máy tính AT ( Advanced Technology). Bus này bao gồm những khe cắm mở rộng 8 bit để tương thích với các bộ điều hợp cũ, và khe cắm 16 bit dùng cho những bộ điều hợp kiểu AT. - Bus MCA ( Micro Chanel Architecture). Loại bus 32 bit sở hữu riêng được dùng trong các máy tính IBM PS/ 2 cao cấp. - Bus EISA ( Enhanced Industry Standard Architecture). Loại bus 32 bit, nhưng khác với bus MCA là có thể tương thích ngược với các bộ điều hợp ISA. Tính chất rộng rãi của 32 bit chỉ được sử dụng một phần. Mặc dù các đường dẫn trong bus nội bộ của bộ xử lý hoạt động ở tốc độ cao phù hợp với bộ xử lý của bạn, nhưng bus mở rộng thì hoạt động với tốc độ thấp hơn nhiều - EISA ở 8. 33 MHZ và MCA ở 10 MHZ. bus Local (là một loại đường dẫn tốc độ cao liên kết bộ xử lý của máy tính với vài ba khe cắm mở rộng) đã được xây dựng để tăng tốc độ cho việc hiện hình video trong các chương trình dùng nhiều đồ hoạ như Microsoft Windows chẳng hạn. * Hệ thống vào/ra Một trong những bộ phận chính của cấu trúc hệ thống máy tính, là mối liên kết của bộ vi xử lý và các phân mạch khác trong máy, dùng để đưa các lệnh chương trình và dữ liệu vào đơn vị xử lý trung tâm ( CPU). * Môđun Trong chương trình máy tính, đây là một đơn vị hoặc một đoạn có khả năng thực hiện chức năng riêng của nó, ví dụ, trong một chương trình tích hợp, bạn có thể dùng môđun xử lý văn bản như là một chương trình riêng biệt, độc lập. * Địa chỉ bộ nhớ Mã số dùng để định danh một vị trí nhất định trong bộ nhớ truy cập ngẫu nhiên của máy tính. * Thanh ghi: Là một phần của bộ nhớ bên trong có một dung lượng nhớ cụ thể nhưng thường được dự trù cho một mục đích cụ thể. Độ dài của thanh ghi (register length)là dung lượng bộ nhớ của một thanh ghi. 2. Các thành phần cơ bản: Ở mức cao nhất, một máy vi tính chứa bộ xử lý, bộ nhớ, các thiết bị nhập xuất với một hay nhiều module của mỗi loại. Những thiết bị này được tương kết theo một số cách để hoàn tất chức năng chính của máy vi tính, đó là các chương trình thực thi. Do đó có 4 thành phần cấu trúc chính: * Bộ xử lý : điều khiển quá trình hoạt động của máy vi tính và thực hiện các chức năng xử lý dữ liệu. Khi chỉ có một bộ xử lí , nó thường được xem như là đơn vị xử lý trung tâm (CPU). * Bộ nhớ chính : lưu trữ dữ liệu và các chương trình. Bộ nhớ này đặc trưng là không ổn định. Nó cũng được xem như là bộ nhớ thực hay bộ nhớ chính (primary memory). * Các module nhập xuất (I/O): di chuyển dữ liệu giữa máy vi tính và môi trường bên ngoài của thiết bị nhập xuất. Môi trường bên ngoài gồm các thiết bị ngoại vi đa dạng như các thiết bị bộ nhớ thứ cấp, các thiết bị truyền thông và các thiết bị cuối. * Đường truyền hệ thống : một số cấu trúc và cơ chế qui định việc truyền thông giữa các bộ xử lý, bộ nhớ chính, và các module nhập xuất. Một trong những chức năng của bộ xử lý là trao đổi dữ liệu với bộ nhớ thông qua việc sử dụng 2 thanh ghi nội CPU, đó là : một thanh ghi địa chỉ bộ nhớ (MAR) thì chỉ rõ địa chỉ cho thao tác đọc hay ghi tiếp theo; và một thanh ghi vùng đệm bộ nhớ (MBR) chứa dữ liệu được ghi đến bộ nhớ hoặc nó tiếp nhận dữ liệu đọc từ bộ nhớ. Tương tự, một thanh ghi địa chỉ nhập xuất(I/OAR) chỉ rõ một thiết bị nhập xuất cụ thể. Một thanh ghi vùng đệm nhập xuất được dùng để trao đổi dữ liệu giữa một module nhập xuất và bộ xử lý. Một module bộ nhớ bao gồm một tập hợp các vị trí được xác định bởi các địa chỉ được đánh số tuần tự. Mỗi vị trí chứa một số nhị phân mà nó có thể được thông dịch như một chỉ thị hay dữ liệu. Một module I/O chuyển dữ liệu từ các thiết bị bên ngoài đến bộ xử lý và bộ nhớ, hay ngược lại. Nó bao gồm các bộ đệm bên trong để lưu tạm thời dữ liệu cho đến khi chúng được gởi đi. 3. Các thanh ghi bộ xử lý: Bộ xử lý bao gồm tập hợp các thanh ghi cung cấp một mức độ của bộ nhớ là nhanh hơn và nhỏ hơn bộ nhớ chính. Các thanh ghi trong bộ xử lý đáp ứng 2 chức năng : Các thanh ghi người dùng có thể lập trình được : ngôn ngữ máy (hợp ngữ) cho phép lập trình viên giảm tối thiểu bộ nhớ chính tham chiếu bằng cách tối ưu việc sử dụng thanh ghi. Bởi vì ngôn ngữ lập trình bậc cao, một trình biên dịch tối ưu sẽ thử làm một lựa chọn thông minh các biến để gán cho các thanh ghi và các vị trí bộ nhớ chính. Một số ngôn ngữ lập trình bậc cao, như C, cho phép lập trình viên dự đoán trình biên dịch là các biến được giữ trong các thanh ghi. Thanh ghi điều khiển và thanh ghi trạng thái : được dùng bởi bộ xử lý để điều khiển quá trình hoạt động của bộ xử lý và bằng đặc quyền, hệ thống hoạt động thường trình để điều khiển sự thực thi của các chương trình. Không có sự phân chia rõ ràng của các thanh ghi thành 2 loại này. Ví dụ trên một số máy bộ điếm chương trình (PC : program counter) người dùng có thể lập trình được, nhưng trên nhiều máy khác thì không. Vì mục đích của sự tranh luận tiếp theo, tuy nhiên nó thuận tiện cho việc dùng những loại này. 3.1. Những thanh ghi người dùng lập trình được -- User - Visible Register : Một thanh ghi người dùng có thể lập trình được đề cập tới bằng ngôn ngữ máy mà thực hiện những chỉ dẫn của bộ xử lý và có thể dùng được cho hầu hết tất cả các chương trình, bao gồm các chương trình ứng dụng cũng như các chương trình hệ thống. Một vài dạng tiêu biểu có sẵn của những thanh ghi đó là thanh ghi dữ liệu, thanh ghi địa chỉ và các thanh ghi mã trạng thái. 3.1.1. Thanh ghi dữ liệu: Thanh ghi dữ liệu có thể được thiết kế bằng sự đa dạng các hàm bởi người lập trình. Trong một vài trường hợp, về bản chất chúng là mục đích chung và có thể được sử dụng với bất kì chỉ thị nào mà máy thi hành các hoạt động về dữ liệu. Tuy nhiên, thông thường có những sự hạn chế. Ví dụ, có những thanh ghi chuyên dụng cho những phép tính dấu phẩy động và các phép tính về số nguyên. 3.1.2. Thanh ghi địa chỉ: Chứa đựng những địa chỉ bộ nhớ chính về dữ liệu và thông tin, hoặc chúng chứa một phần của địa chỉ mà được sử dụng trong các phép tính đầy đủ hoặc địa chỉ đang tồn tại. Những thanh ghi này có thể có chung mục đích, hoặc chúng có thể được dùng cho một hoạt động thông thường, hoặc cách thức của việc lấy địa chỉ bộ nhớ. Bao gồm những loại sau đây: Thanh ghi chỉ mục: Chỉ số hoá sự định vị là một cách thức chung của việc định vị mà trong đó thêm vào địa chỉ một chỉ mục tới một giá trị cơ sở để được một địa chỉ thật sự. Con trỏ đoạn: Với sự định vị phân đoạn, bộ nhớ được phân chia thành nhiều đoạn, mỗi đoạn là một chuỗi kí tự độ dài biến. Một tham chiếu bộ nhớ bao gồm một tham chiếu tới đoạn mẫu tin và một khoảng trống trong phạm vi của đoạn; kiểu định vị này là quan trọng về sự điều khiển bộ nhớ. Ở dạng định vị này, thanh ghi được sử dụng để lưu giữ địa chỉ của các phân đoạn cơ bản (bắt đầu sự định vị). Có những thanh ghi đa năng; ví dụ, một cho hệ điều hành ( chẳng hạn, khi hệ điều hành đang thi hành mã hoá trên bộ vi xử lý) và một cho ứng dụng mã hoá hiện hành. Con trỏ ngăn xếp: Nếu có ngăn xếp người dùng lập trình được, thì có một thanh ghi chuyên dụng, nó chỉ ra đỉnh của ngăn xếp. Quy luật này sử dụng cho những thông tin mà nó không chứa những vùng địa chỉ, như là đẩy vào và lấy ra. Trong một số máy tính, một thủ tục hoặc một lời gọi chương trình con sẽ tự động cất giữ kết quả của tất cả nhũng thanh ghi do người dùng lập trình, để được hồi đáp lại. Sự lưu trữ và hồi đáp lại được thi hành bởi bộ xử lý như là một phần của việc thực thi các lệnh gọi và những chỉ thị trả về. Điều này cho phép mỗi thủ tục dùng những thanh dung này một cách độc lập. Trên những máy khác, người lập trình có trách nhiệm lưu giữ những nội dung có liên quan đến những thanh ghi người dùng lập trình được trước khi gọi một thủ tục, bao gồm những chỉ thị cho mục đích này trong chương trình. Vì vậy, việc lưu trữ và phục hồi các chức năng có thể hoạt động trong cả hai phần cứng và phần mềm, trên đà phát triển máy tính. 3.2. Thanh ghi điều khiển và thanh ghi trạng thái . Một sự đa dạng của những thanh ghi bộ xử lý được dùng để điều khiển quá trình hoạt động của bộ xử lý. Trong hầu hết các máy, phần lớn các thanh ghi đó người dùng không lập trình được. Một số có thể được sử dụng bằng việc thực thi các chỉ thị máy, đó là một điều khiển hoặc một phương thức hệ điều hành. Tất nhiên những máytính khác nhau sẽ có sự tổ chức thanh ghi khác nhau và sử dụng những thuật ngữ khác nhau. Ở đây chúng ta liệt kê ngắn gọn một danh sách hợp lý những loại thanh ghi.Thêm vào những thanh ghi MAR , MBR, I\OAR, và I\OBR đã đề cập trước đó. Thanh ghi vùng đệm bộ nhớ(MBR): chứa một từ sẽ được lưu trữ trong bộ nhớ hay sẽ được dùng đề nhận một 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. Sau đây là yếu tố cần thiết để thực thi câu lệnh: o Bộ đếm chương trình(Program counter_PC): Chứa địa chỉ thị của cặp chỉ thị kế tiếp được lấy ra từ bộ nhớ. o Thanh ghi chỉ thị( Instruction register_IR):Chứa mã thao tác(op code) 8 bit của chỉ thị được thực thi. Tất cả những thiết kế bộ vi xử lý còn bao gồm một thanh ghi hoặc tập hợp những thanh ghi, thường được biết như là một chương trình văn bản trạng thái, mà chứa những thông tin trạng thái. Chương trình văn bản trạng thái chứa những đoạn mã điều khiển đặc thù cộng với những thông tin trạng thái khác, như một ngắt bit có thể và không thể và một người dùng bit phương thức. Mã điều khiển (cũng giống như một cái cờ) là những bít tập hợp bởi phần cứng vi xử lý như kết quả của những phép toán. Ví dụ như, một phép toán số học có thể đưa ra kết quả một số dương, một số âm, số 0, phần dư.Thêm vào đó kết quả của chính nó đang được lưu trữ trong thanh ghi hoặc bộ nhớ , một mã trạng thái cũng là tập hợp việc thi hành của phép toán số học. Đoạn mã này có thể được kiểm tra sau đó như một phần phép toán điều kiện. Những bit đoạn mã trạng thái tập hợp thành một hoặc nhiều thanh ghi.Thông thường chúng tạo thành một phần của thanh ghi điều khiển. Nói chung, những chỉ thị máy cho phép những bit đó được đọc bởi tham chiếu ngầm định. Nhưng chúng không được thay thế bởi tham chiếu ngầm định bởi vì chúng dùng cho thông tin phản hồi đối với kết quả của việc thực thi câu lệnh. Việc sử dụng những loại ngắt trong máy , một tập hợp những thanh ghi ngắt có thể được cung cấp, với một con trỏ thực thi điều khiển ngắt. Nếu ngăn xếp được sử dụng để thi hành các hàm nào đó thì hệ thống con trỏ ngăn xếp được cần đến. Cuối cùng, những thanh ghi có thể được sử dụng trong một điều khiển của phép toán nhập xuất. Một số nhân tố đi vào sự thiết kế của tổ chức thanh ghi điều khiển và thanh ghi trạng thái. Đưa ra một giải pháp là hổ trợ hệ điều hành. Kiểu thông tin điều khiển nào đó là tiện ích đặc biệt đến hệ điều hành. Nếu người thiết kế bộ xử lý có sự hiểu biết chức năng của hệ điều hành, thì tổ chức các thanh ghi hỗ trợ phần cứng về những đặc trưng thông thường như bảo vệ bộ nhớ và chuyển đổi giữa các chương trình người dùng. Một hướng thiết kế khác là xác định những thông tin điều khiển giữa những thanh ghi và bộ nhớ. Trước hết nó thường được dành riêng cho hàng trăm hàng ngàn từ của bộ nhớ với mục đích điều khiển. . chính của máy vi tính, đó là các chương trình thực thi. Do đó có 4 thành phần cấu trúc chính: * Bộ xử lý : điều khiển quá trình hoạt động của máy vi tính và. motherboard hay là BIOS ROM để vận hành khi máy vi tính vừa khởi động. PROM (Programmable ROM) Mặc dù ROM nguyên thủy là không xoá/ghi được, nhưng do