Đề án Nghiên cứu về các loại vi xử lý của hãng INTEL

Khi nghiên cứu bộ vi xử lý là nghiên cứu đàu tiên và chủ đạo trong nghiên cứu một hệ vi xử lý. Từ sự nghiên cứu trên đã giúp cho chúng ta hiểu được khoa học kỹ thuật ngày càng phát triển và có thể nói là như bảo lũ, đã làm cho chúng ta không thể nhắc đến công nghệ vi xử lý của hãng INTEL. Nó không những tác động đến ngành công nghệ thông tin mà còn giúp cho các ngành công nghiệp ngày càng phát triển. Với sự phát triển hệ vi xử lý của hãng INTEL đã đưa con người ngày một được dễ tiếp cận với những cái tinh vi hơn, mới hơn! Em rất chân thành cảm ơn cô giáo Hồ Bích Hà đã giúp em hoàn thành đề án “Nghiên cứu về các loại vi xử lý của hãng INTEL”

doc38 trang | Chia sẻ: linhlinh11 | Lượt xem: 919 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Đề án Nghiên cứu về các loại vi xử lý của hãng INTEL, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Lời nói đầu Trong thời đại hiện nay kỷ thuật số phát triển như bảo lũ và đang thâm nhập vào hầu hết các lĩnh vực khoa học kỹ thuật cũng như trong đời sống. Phạm vi của kỹ thuật số về mặt hình thức có thể chia làm 3 vùng: Các mạch số cổ điển , hệ vi xử lý chuyên dụng và hệ thống máy tính số. Trong đó các hệ vi xử lý của hãng Intel là một trong những lĩnh vực mà ta cần quan tâm. Đề án bao gồm các chương sau: Mở Đầu : Giới thiệu về bộ vi xử lý Chương I: Bộ Vi xử lý của hãng INTEL ChươngII: Phối ghép trong hệ vi xử lý (INTEL) ChươngII: Các bộ vi xử lý của hãng INTEL Kết Luận : Sự phát triển Vi xử lý đã tác động đến công ngệ thông tin ngày càng phát triển Chương I : Bộ vi xử lý của hãng Intel I- Định nghĩa hệ vi xử lý (VXL) 1- Định nghĩa: Hệ vi xử lý là một hệ thống số được xây dựng trên cơ sở của bộ VXL. Như vậy định nghĩa gồm 2 phần rõ rệt . Là một hệ thống số cho nên tín hiệu làm việc là do tín hiệu số (nhận hai giá trị 0 và 1) và hoạt động trên cơ sở của một hệ thống số. Bộ VXL được cấu tạo là một vi mạch số mật độ cực lớn làm việc theo chương trình, tức là theo nguyên tắc nhận lệnh từ bên ngoàI và thực hiện lệnh. 2- Sự phát triển của kỹ thuật VXL: Có thể nói sự phát triển của kỹ thuật VXL gắn liền với sự phát triển của bộ VXL. ở đây chúng ta nghiên cứu chủ yếu là các bộ VXL của hãng Intel, là hãng sản xuất bộ VXL đầu tiên và cũng là hãng có họ VXL khá phong phú. Ngoài ra cũng còn kể các hãng khác mà họ MP cũng rất thông dụng trên thị trường của ta là các hãng Motorola hay Zilog. Sự phát triển của bộ VXL từ các bộ VXL sơ khai 8bit sử dụng dể thiết kế trên các máy tính ( quả táo 2 ) với tập lệnh và chức năng đơn giản. Đến nay đã tạo nên những bộ VXL có chức năng cực kỳ mạnh có các tệp lệnh Ris và Cis đan xen. Có các chức năng bộ nhớ hiệu quả và tốc độ thực hiện rất lớn. Sự phát triển của bộ VXL đã dần dần đẩy gần ranh giới của các hệ máy tính mini, vừa và nhỏ. II- Cấu trúc bộ VXL 8086/8088: Các thông số đặc trưng. Là bộ VXL thuộc thế hệ thứ 3. Bộ VXL 8086 và 8088 thực chất là giống nhau, điều là bộ VXL 16 bit của Intel. Sự khác nhau cơ bản giữa bộ VXL 8086 và 8088 là các phân số liệu đưa ra ngoài. MP 8088 truyền số liệu từ Bus trong ra ngoài hay ngược lại thông qua Bus số liệu 8 bit, trong khi đó 8086 có thể truyền 8bit hay 16bit. Cả hai co bộ VXL có các tính chất đặc trưng: Được đóng trong vỏ 40 chân Nguồn nuôi : 5;8 hay 10 Mhz Có khả năng xử lý dữ liệu 8 bit hay 16 bit Bus dữ liệu bên trong là 16bit. Bus dữ liệu ngoài là 8bit của 8088 và 16bit của 8068. Đây là điểm khác nhau cơ bản nhất của hai be vi xử lý này . Bus địa chỉ, chỉ có Bus ngoài , là 20bit. Bộ VXL sử dụng cả 20bit để địa chỉ hoá bộ nhớ, do đó có khả năng địa chỉ hoá tối đa là 1Mb nhớ. Với cổng vào/ra, bộ VXL sử dụng 8bit địa chỉ trong chế độ trực tiếp và 16bit trong chế độ gián tiếp. Có lệnh nhân chia và xử lý chuỗi Có khả năng làm việc song song giữa các đơn vị điều khiển Bus và đơn vị xử lý. Có cả hai bộ VXL có thể làm việc ở hao chế độ, có thể chọn bằng giắc cắm. ở chế độ tối thiểu (Mini) các tín hiệu điều khiển được tạo trực tiếp từ CPU và được đưa ra từ Bus hệ thống. Còn ở chế độ mở rộng , CPU giửi tín hiệu đến bộ điều khiển Bus – 8228. Bộ điều khiển Bus tạo ra tín hiệu điều khiển ra Bus hệ thống . Cấu trúc bên trong(hình vẽ 32) Sơ đồ khối của bộ VXL 8086 . Nó được tạo thành từ 2 đơn vị chính: Đơn vị sao chép nối Bus Biu (Bus interface Unit), và đơn vị thực when EU. Cả hai đơn vị này có khả năng làm việc song song đồng thời, do đó tốc độ làm việc của hệ tăng lên rất nhiều. Đơn vị thực hiện EU của 8086 và 8088 giống nhau bao gồm các phần: Khối ALU và thanh cờ ghi chung. Nhiệm vụ của EU là nhận lệnh từ hàng đợi lệnh trong BIU, giải mã và điều khiển thực hiện lệnh. Tất cả các đường dữ liệu bên trong là 16 bit. Đơn vị EU không nối trực tiếp với thế giới bên ngoài. Nó nhận lệnh và thâm nhập bộ nhớ hay thiêts bị ngoại vi thông qua BIU. BIU có nhiệm vụ: nhận lệnh từ bộ nhớ để xếp vào hàng đợi lệnh; thực hiện tất cả các thao tác với Bus; và tạo địa chỉ vật lý từ địa chỉ logic. Khoảng thời gian BIU thâm nhập ra ngoài để thực hiện đọc bộ nhớ(MEMR) hay ghi bộ nhớ (MEMW) hoặc đọc vao/ra (IORD) hay ghi vao/ra (IOWR) được gọi là một chu kỳ thâm nhập Bus (gọi tắt là một chu kỳ Bus). Việc nhận lệnh trong BIU và việc thực hiện trong EU có thể được tiến hành song song làm tăng đáng kể tốc độ làm việc trong hệ 16bit. Tổ chức bên trong của EU: Các thanh ghi chung(hay còn gọi là các thanh ghi dữ liệu) bao gồm các thanh ghi đa năng, các thanh ghi chỉ số và cơ sở. Các thanh ghi đa năng được dùng trong toán hạng trong hầu hết các lệnh và dùng lưu trữ tạm các kết quả. Tổ chức bên trong của BIU: - Dẫy chứa lệnh hay là hàng đợi lệnh , là nơi lưu trữ tạm thời cá byte lệnh sẽ được đưa vào thực hiện trong lệnh EU. Dãy chứa lệnh là một bộ nhớ FIFO. bộ VXL 8088 có dãy chứa lệnh rộng 4 byte và 8086 có dãy chứa lệnh là 6 byte. - Các thanh ghi đoạn và con trỏ lệnh Bộ VXL 8086/8088 có 4 thanh ghi đoặn là 16bit là: Thanh ghi đoặn mã lệnh CSR, thanh ghi đoặn dữ liệu DSR, thanh ghi đoặn ngăn xếp SSR và thanh ghi đoặn phụ ESR. Các thanh ghi đoặn được dùng để chứa địa chỉ segment (còn gọi là địa chỉ cơ sở hay địa chỉ nền ) của đoặn hay trong chương trình đang thực hiện. Một chương trình có thể làm việc tối đa là 4 đoặn bộ nhớ tương ứng với 4 thanh ghi đoặn. Các thanh ghi đoặn được địa chỉ hoá bằng 2 bit địa chỉ. - Khối điều khiển Bus: Đơn vị điều khiển Bus thực hiện các thao tác ghép nối CPU với Bus chung như: Nối ghép và nối phối hợp Bus dữ liệu ngoài với Bus nội bộ của CPU . Tiếp nhận các tín hiệu điều khiển từ khối EU để tạo ra các tín hiệu trên Bus ngoài thực hiện lệnh. Ngoài ra còn điều khiển tạo ra địa chỉ thực 20 bit thâm nhập bộ nhớ. Chức năng chân tín hiệu: Điểm khác nhau của 8088 là có 8 bit dữ liệu và các bit BHE/S7 được thay bằng SS0, còn M/IO được thay bằng IO/M Các chân CPU có thể gộp lại theo chức năng của tín hiệu. Các chế đọ dùng chung cho cả chế đọ Min và Max - Các đường nguồn nuôi . Các chân 1 và 20 nối đất. Chân 40 nối +5V. - Các đường địa chỉ dữ liệu. Là các đường tín hiệu 3 trạng thái, mức tích cực dương, gồm các chân: III- Quản lý bộ nhớ vào/ra: 1- Tổ chức và phân chia bộ nhớ : Bộ VXL 8086/8088 sử dụng 20 bit địa chỉ bộ nhớ và có thể địa chỉ hoá bộ được không gian nhớ là 1Mb. Không gian nhớ được chia thành các đoặn, mỗi đoặn là một đơn vị luân lý gồm các ô nhứ liên tiếp, độc lập có thể định vị tách rời và có thể dài tố đa đến 64 Kbytes. Thường người ta tổ chức bộ nhớ cho các hệ vi xử lý đến các đơn vị nhỏ nhất là byte. Với hệ vi xử lý 8086/8088, bộ nhớ được tổ chức để có khả năng thâm nhập đến từng byte(8 bit) hay word (16bit) trong không gian nhớ. 2- Phương pháp quản lý bộ nhớ: Bộ VXL 8086/8088 phân chia và quản lý vùng nhớ theo từng đoặn và ở chế độ địa chỉ thực. Một chương trình có thể chiếm tối đa đến 4 đoặn bộ nhớ Đoạn lệnh và mã vùng bộ nhớ để chứa các lệnh của chương trình Đoặn dữ liệu và vùng bộ nhớ để chứa dữ liệu Đoặn ngăn xếp là vùng bộ nhớ để chứa thông tin của dữ liệu hay trạng thái Đoạn dữ liệu phụ là vùng bộ nhớ để chứa dữ liệu khi chương trình cần 2 đoạn dữ liệu Để quản lý mỗi đoặn bộ VXL sử dụng 2 giá trị 16bit là segment: offset, còn được gọi là địa chỉ luân lý. Trong đó segment là giá trị của thanh ghi đoặn, còn offset được xác định từng trường hợp cụ thể. Bộ tạo địa chỉ thực tạo ra địa chỉ vật lý từ địa chỉ luân lý này. Để tính địa chỉ vật lý, bộ tạo địa chỉ thực hiện: Địa chỉ vật lý = segment x16 + offset 3- Quản lý vào/ra: 8086 và 8088 quản lý vào/ra địa chỉ tách biệt (dùng các lệnh IN và OUT) là giống nhau trong trường hợp: - Nếu là địa chỉ trực tiếp, nó sử dụng 8bit địa chỉ thấp A0 – A7 để địa chỉ vào/ra. Không gian vào ra trong trường hợp này là 256 cổng vào ra - Nếu là địa chỉ gián tiếp, nó sử dụng 16bit địa chỉ thấp A0 – A15 để địa chỉ vào/ra. Không gian vào ra là 64k cổng vào/ra IV- Tập lệnh: 1- Các chế độ địa chỉ: Một bộ VXL có thể có nhiều chế độ địa chỉ, nó được xác định khi chế tạo. Bộ VXL 8086/8088 có các chế độ địa chỉ cơ bản sau: 1.1- Chế độ địa chỉ thanh ghi: Toán hạng là địa chỉ ghi trong CPU và thao tác được thực hiện ngay trong CPUvới các thanh ghi chỉ trong lệnh, do đó tốc độ thực hiện cao Ví dụ: MOV AX, BX; BX --> AX Hay ADD CL, BL; CL + BL --> CL 1.2- Chế độ địa chỉ tức thì: Toán hạng là một hằng số được cho trong lệnh, còn toán hạng kia là thanh ghi hay ô nhớ. Thao tác của lệnh là trực tiếp của thanh ghi hay ô nhớ đó với hằng số đó Ví dụ MOV AX, 0001h; 0001h --> AX Hay ADD CL, 0Ah ; CL + 0Ah --> CL 1.3- Chế độ địa chỉ bộ nhớ: Toán hạng là một ô nhớ (byte hay word). Thao tác của lệnh là thực hiện với ô nhớ đó. Tuy nhiên tuỳ theo phương pháp xác định địa chỉ ô nhớ, chế độ địa chỉ bộ nhớ có thể được chia thành các loại là: Chế độ địa chỉ trực tiếp: Trong chế độ này toán hạng là ô nhớ mà địa chỉ offset của nó là một hằng địa chỉ 16bit hay một nhãn cho trực tiếp trong lệnh Ví dụ MOV AL, {1234} Hay MOV B, CX ;B là biến bộ nhớ đã được khai báo b- Chế độ địa chỉ gián tiếp qua thanh ghi: Trong chế độ này, địa chỉ offset của ô nhớ được chứa trong thanh ghi được cho trong lệnh. Ví dụ MOV AX, {BX} Hay ADD AL, {SI} c- Chế độ địa chỉ cơ sở: Trong chế độ này, địa chỉ offset của ô nhớ được xác định bằng cách cộng nội dung bằng thanh ghi cơ sở (BX hoặc BP) cho trong lệnh vớ giá trị dịch chuyển Giá trị dịch chuyển có thể là một hằng, một biến hay tổng của hằng với biến Ví dụ MOV CX, {BX} + 10 Hay MOV CX, {BX + 10} d- Chế độ địa chỉ tương đối chỉ số: Trong chế độ địa chỉ này, địa chi offset được xác định bằng cách cộng nội dung thanh ghi chỉ số (SI hoặc DI) cho trong lệnh với giá trị dịch chuyển Ví dụ MOV AX, {SI} + 10 Hay MOV AX, {SI + 10} e- Chế độ địa chỉ tương đối chỉ số cơ sở: Là sự kết hợp hai địa chỉ trên. Khi đó offset của ô nhớ được xác định bằng phép cộng của cả nội dung thanh ghi cơ sở với cả thanh ghi chỉ số. Nếu có thêm giá trị dịch chuyển, thì đó là chế độ địa chỉ tương đối chỉ số cơ sở Ví dụ MOV AX,{BX}{SI} + 8 Hay MOV CL, {PD +DI +5} Phương pháp ngầm định thanh ghi đoặn Đó là những thanh ghi đoặn đã được ngầm định đối với những offset được cho trong lệnh khi xác định địa chỉ ô nhớ Ngoài ra còn có các cặp tương ứng luôn đi với nhau: - Để xác định địa chỉ byte lệnh ta dùng CS:IP - Để xác định địa chỉ ngăn xếp ta dung SS:PP khi thao tác ngăn xếp - Thanh ghi đoặn ES ngầm định cho ID khi dùng các lệnh thao tác chuổi Muốn loại bỏ các tổ hợp ngầm định nói trên khi viết lệnh ta phải ghi rõ trên thanh ghi đoặn sẽ dùng để tính địa chỉ theo quy cách: Ví dụ: MOV AL, ES:{BX} Khi thực hiện lệnh này, nội dung của ô nhớ trong đoặn ES và có địa chỉ offset trong BX được đưa vào thanh ghi AL Ta có bảng sau: Chế độ địa chỉ Toán hạng T/G đoặn ngầm định Trực tiếp [offset] DS Gián tiếp thanh ghi [BX] {SI} {DI} DS DS DS Tương đối cỏ sở {BX} + Disp {BP} + Disp DS SS Tương đối chỉ số {SI} + Disp {DI} + Disp DS DS Tương đối chỉ số cỏ sở {BX}+{DI}+ Disp {BX}+{SI}+ Disp {BP}+{DI}+ Disp {BP}+{SI}+ Disp DS DS SS SS Bảng các thanh ghi đoặn ngầm định trong các chế độ địa chỉ 2- Phương pháp mã hoá lệnh: Một lệnh của bộ VXL 8086/8088 có độ dài từ 1 đến 5byte tuỳ theo mỗi lệnh, nhưng được đánh số thứ tự từ 1 đến 6. ý nghĩa của byte lệnh trên như sau: Byte1 byte2 byte3 byte4 byte5 byte6 Mã lệnh Trợ giúp Dữ liệu Dữ liệu Dữ liệu Dữ liệu Dạng hình tổng quát của lệnh 8086/8088 - Byte đầu tiên chứa mã lệnh, xác định thao tác của lệnh. Với bất kỳ lệnh nào, byte mã lệnh đều có mặt. - Nếu lệnh cần phải xác định toán hạng thì có mặt byte2. Byte thêm vào để giúp byte1 xác định toán hạng cho lệnh. - Các byte còn lại là các byte thứ 3, 4, 5, 6 để chứa dữ liệu cho lệnh. Tuỳ theo dữ liệu cho trong lệnh mà sẽ xuất hiện các byte này khi dịch. Nếu lệnh cần dữ liệu là byte thì có mặt byte3. Nếu là word hay hằng địa chỉ thì sẽ thêm byte3 và byte4. Còn nếu cần thay đổi hằng địa chỉ cả offset va cả segment thì các byte 3, 4, 5 đều có mặt. 3- Giới thiệu tệp lệnh của 8086/8088: Khái niệm tệp lệnh của 8086/8088 Tệp lệnh của 8086 và 8088 hoàn toàn giống hệt nhau và bao trùm khả năng của họ 808/8085 ngoài ra còn có khả năng cho phép như sau Nhân chia nhị phân có dấu và không dấu - Di chuyển quét và so sánh chuổi - Kiểm tra bit - Phát ra ngắt quảng bằng phần mềm 3.1- Nhóm trao đổi dữ liệu: a- Trao đổi dữ liệu trong CPUvà CPU với M + Lệnh MOV - move Cú pháp: MOV dest, source ; source --> dest Khi lệnh này thực hiện thì toán hạng nguồn được chuyển vào đích Không thể chuyển thông tin trực tếp giữa 2 ô nhớ Ví dụ: khi chuyển số liệu từ MEM1 sang MEM2 ta phải thực hiện MOV SI, MEM1 MOV MEM2, AL + Lệnh LEA – load affective address Cú pháp: LEA dest, source ; source --> dest Khi lệnh này thực hiện thì địa chỉ offset của ô nhớ được đưa vào thanh ghi Ví dụ: Nếu B là biến bộ nhớ đã được khai báo thì lệnh LEA BX, B sẽ nạp địa chỉ offset B vào thanh ghi BX hay LEA CX, [BX] [DI]; địa chỉ hiệu dụng EA= BX+DI-->CX + Lệnh LDS – Load regeste and DS with words from memore Cú pháp LDS dest, source ; (source) --> dest, (source + 2) -->DS Lệnh thực hiện nạp words thấp của ô nhớ vào thanh ghi đích và word cao và DS. Ví dụ: Giả sử HERE là một biến word, khi đó ta dùng LDS BX, HERE-FAR = MOV BX, HERE MOV AX, HERE + 2 MOV DX, AX + Lệnh LES - Load regeste and ES with words from memore Cú pháp: LES dest, source ; (source) --> dest, (source + 2) -->ES Lệnh thực hiện nạp word thấp ô nhớ vào thanh ghi đích và word cao vào ES + lệnh XCHG – exchange 2 operands Cú pháp: XCHG dest, source; dest source Lệnh thưc hiện trao đổi giá trị cuả đích với nguồn và ngược lại + Lệnh XLAT Cú pháp: XLAT; (AL + BX) -->AL lệnh không có toán hạng b- Các lệnh thao tác ngăn xếp: + Lệnh PUSH – push word on the stack Cú pháp: PUSH source ;SP-2-->SP, source-->(SP) Trong đó, nguồn là thanh ghi dữ liệu, thanh ghi đoặn (trừ CS) hay ô nhớ 16bit tìm theo các chế độ địa chỉ khác nhau + Lệnh PUSHF – push flag register on the stack Cú pháp: PUSHF SP-2-->SP, FP-->(SP) + Lệnh POP – pop word form top of stack Cú pháp: POP dest; (SP) -->dest, SP + 2-->SP c- Các lệnh thao tác với cổng vào/ra: + Lệnh In – input data from port Cú pháp có 2 dạng: In Acc, port; Acc <--(port) Hay In Acc, DX; Acc <--(DX) 3.2 - Nhóm lệnh số học, logic, và dịch, vòng quay: Các lệnh số học Dạng dữ liệu - Là các số nhị phân 8/16bit, có dấu hay không có dấu - Không dấu: 0 - 255 (8bit), 0 – 65545 (16bit) Có dấu: -128 --> 127 (8bit), -32768 -- >32767 (16bit) - Số thập phân BCD: nén/không Các lệnh công + Lệnh công: ADD Không nhớ ADD dest, source; dest + source -- > dest Cộng có nhớ ADC dest, source; dest + source + CY -- > dest Các lệnh trừ - Lệnh SUB Không mhớ SUB dest, sourcce; dest – source -- > dest Cộng có nhớ SBB dest, source; dest – source – CY -- > dest Các lệnh tăng hay giảm và so sánh - Các lệnh tăng giảm: INC dest; dest + 1 -- > dest DEC dest; dest + 1-- > dest - Lệnh lấy bù hai NEG dest; - dest -- > dest - Lệnh so sánh CMP dest, source; dest – source Các lệnh nhân MUL source; nhân không dấu IMUL source; nhân có dấu - Nhân byte :AL * source = kết quả 16bit - Nhân word: AX * source = kết quả 32bit Các lệnh chia DIR source; Chia không dấu Và IDIV source; Chia có dấu - Chia byte: AX/source. Kết quả phép chia là 1byte - Chia word: DX/source. Kết quả phép chia là 1word b- Lệnh luân lý: Là các lệnh thực hiện thao tác bit gồm các lệnh thực hiện các phép logic - Lệnh và: AND dest, source; dest source -- > dest - Lệnh hoặc: OR dest, source; dest source -- > dest - Lệnh cộng mdul2: XOR dest, source; dest ' source -- > dest - Lệnh bù NOT dest; dest -- >dest - Lệnh kiểm tra TEST dest, source; dest – source c. Lệnh dịch và vòng quay Các lệnh dịch - Dịch trái: SAL/SHL dest SAL/SHL dest, CL - Dịch phải: SAR/SHR dest SAR/SHR dest Dest CF dest CF Lệnh SHR Lệnh SAR Tương tự lệnh SAR là phải dịch số học, SHR là dịch phải logic Các lệnh quay vòng - Các lệnh quay không qua CF ROL/ROR dest ROL/ROR dest, CL CF dest - Các lệnh vòng quay trái hoặc phải qua cờ CF RCL/RCR dest RCL/RCR dest, CL Quay nhiều bit cũnglà quay 1 bit nhiều lần Dest CF V- Nguyên Lý Hoạt Động 1- Các chu kỳ Bus của 8086/8088 Do sự làm việc của 2 khối BIU và EU trong bộ VXL được tiến hành song song, cho nên thời gian thâm nhập cho một chu kỳ Bus của bộ VXL 8086/8088 đều giống nhau và đều tốn 4 chu kỳ xung nhịp. Trương hợp khi sử dụng bộ nhớ hay vào ra có tốc độ chậm, việc xen vào 1 hay nhiều chu kỳ đợi là tuỳ từng trường hợp cụ thể Các chu kỳ đọc và viết của bộ nhớ và IO được phân biệt nhờ tín hiệu IO/M. Trong các chu kỳ đọc và viết ở chu kỳ xung nhịp đầu tiên T1, bộ VXL đưa ra xung chốt ALE, các tín hiệu địa chỉ, trạng thái được chốt vào mạch chốt ngoài tại sườn xuống của xung. Tín hiệu IO/M cũng được đưa ra đầu ra trong chu kỳ xung nhịp này. Tín hiệu RD hay WR xuất hiện khi ở chu kỳ xung nhịp T3 và sườn lên của xung sẽ ghi nhận thao tác ghi dữ liệu vào CPU T1 T2 T3 Tw T4 T1 T2 T3 Tw T4 T1 CK ALE A16/s3-A19/s6 IO/M Hoạt động trong trạng thái chạy chương trình: 2.1. Các quá trìh nhận lệnh, giải mã và thực hiện lệnh: Có thể xác định llà một chu kỳ lệnh bao gồm: Nhận lệnh, giải mã lệnh và thực hiện lệnh. Trong bộ VXL 8086/8088 thì quá trình nhận lệnh được thực hiện qua BIU và được tiến hành song song với các quá trình giải mã và thực hiện lệnh trong EU. a- Quá trình nhận lệnh được BIU tiến hành như sau: trong quá trình làm việc, BIU sẽ kiểm tra Bus rỗi và hàng đợi lệnh còn trống thì nó sẽ thực hiện một chu kỳ Bus để đọc bộ nhớ. b- Giãi mã lệnh: Byte mã lệnh được đưa ra từ hàng đợi lệnh tới điều khiển EU và được giãi mã. Nếu là lệnh nhiều byte thì các byte dữ liệu cũng được đưa vào EU c- Thực hiện lệnh: Nếu lệnh được thực hiện bên trong thì EU tổ chức thựcc hiện. Nếu lệnh cần thâm nhập bên ngoài thì EU gửi các thông tin đến BIU và Bus thực hiện chu kỳ Bus để thực hiện lệnh. 2.2- Hoạt động: Hoạt động của bộ VXL để thực hiện chương trình là quá trình để thực hiện liên tiếp các chu kỳ lệnh. Đây là hoạt động chủ yếu của bộ VXL trong toàn bộ thời gian làm việc ngoại trừ một số khoảng thời gian rất ngắn khi bộ VXL chuyển trạng thái do ngắt, hay tạm thời dừng hoạt động chờ tín hiệu bên ngoài. Khi RESET hay bắt đầu được cấp nguồn 8086/8088 sẽ nạp cho CS và IP một giá trị cố định (CS:IP=FFFFh0) chạy chương trình được thực hiện từ vị trí này và bắt đầu bằng 1 lệnh nhảy về chương trình khởi động. Chương trình khởi động của bộ VXL 8086/8088 theo lưu đồ sau: Nạp thanh ghi và con trỏ ngăn xếp Nạp chương trình và số liệu vào bộ nhớ Khởi động các mạch ngoại vi Cho phép ngắt Nạp thanh ghi cờ F Nhảy đến chương trình chính 3- Hoạt động trong trạng thái ngắt: 3.1- Cấu trúc của 8086/8088 Ngắt là việc CPU dừng phục vụ chạy chương trình chính để chuyển sang phục vụ một chương trình con để thực hiện mọtt chức năng nào đó khi một yêu cầu ngắt. Và sau khi thực hiện xong chương trình con xử lý ngắt đó thì CPU quay về phục vụ tiếp cho chương trình chính quay tại điểm bị ngắt. Cấu trúc của 8086/8088 đều giống ngắt của các bộ VXL 286, 386, của INTEL, bao gồm: Nhóm các ngắt cứng: + Ngắt không che được NMI (non mask interrutpt) là ngắt mà CPU phục vụ khi có yêu cầu ngắt, không phục vụ vào cờ IF. + Ngắt che được INTR là ngắt mà khi có yêu cầu ngắt CPU chỉ phục vụ khi cờ IF=1 - Nhóm các ngắt mềm: Là ngắt khi CPU thực hiện lệnh ngắt INT n. trong đó n là số hiệu ngắt nằm trong khoảng thừ 00-FFh - Nhóm ngoại lệ: Là các ngắt do lỗi nảy sinh trong quá trình hoạt động của CPU như lỗi do phép chia 0, tràn do tính toán. 3.2- Hoạt động của CPU khi có yêu cầu ngắt INTR Khi có yêu cầu ngắt đưa đến, nếu được phép bộ VXL sẽ dừng chương trình đang thực hiện để chuyển sang thực hiện chương trình con xử lý ngắt Đối với ngắt mềm, quảtình ngắt được thực hiện sau khi giải mã lệnh Đối với ngắt cứng BIU của 8086/8088 kiểm tra yêu cầu ngắt tại chu kỳ xung nhịp thứ hai trong một chu kỳ Bus . Nếu là nắt NMI, CPU sẽ thực hiện quá trình ngắt, còn nếu là ngắt INTR, CPU sẽ thực hiện công việc sau: Kiểm tra cờ IF, nếu IF =1 sẽ gửi INTA thứ nhất thông báo cho ngoại vi, đồng thời thực hiện xong lệnh đang thực hiện rồi mới chuyển sang chu kỳ ngắt. Chương II Phối ghép trong hệ vi xử lý (intel) Phối ghép trong chương này ta nghiên cứu sự phối gép nối bộ VXL, bộ nhớ, các cổng vào/ra thông qua các Bus trong hệ VXL 8086/8088. Khi gép nối phải tuân theo các nguyên tắc sau: - Các chân điều khiển đầu vào của IC nào không được sử dụng phải được đặt ở mức cao hay mức thấp tuỳ vào từng trường hợp cụ thể. - Các chân tín hiệu không phải là 3 trạng thái thì không được nối chung đầu ra với nhau - Việc trao đổi tín hiệu là theo phương thức song song, tức là truyền bao nhiêu bit thì phải có bấy nhiêu đường dây. - Tại một thời điểm việc truyền tín hiệu trên các Bus chỉ được thực hiện bởi một đơn vị phát, và thường với một đơn vị thu. I- Tổ chức bộ vi xử lý: Việc ghép nối bộ VXL 8086/8088 với Bus đều thực hiện cơ bản giống nhau, chỉ khác nhau là 8086 số IC sử dụng làn đệm Bus dữ liệu và làm mạch tách kênh địa chỉ. ở đây chỉ giới thiệu cho 8086, 8088 cũng tương tự - 8086 cũng như 8088 đều sử dụng phương pháp dòn kênh tín hiệu. Do đó để tách các tín hiệu địa chỉ , người ta dùng các mạch chốt ngoài, thường là thanh ghi chốt. Để nâng cao khả năng tải của Bus, và cách ly bộ VXL của Bus,. Ta sử dụng các bộ đệm có đầu ra 3 trạng thái Các bộ VXL 8086 cũng như 8088 đều sử dụng mạch giao động ngoài đùng IC giao động 8284. - Cả 8086 cũng như 8088 đều làm việc trong chế độ Min hay Max 1- Chế độ Min: Chế độ Min được sử dụng khi ta nối chân MN/ trực tiếp với nguồn 5v. Khi đó chế độ diều khiển trong chế độ Min được bộ VXL trực tiếp tạo ra và đưa ra Bus tương tự như đối với hệ 8bit 2- Chế độ Max: Chế độ Max được thực hiện khi chân MN/ được nối đất Trong chế độ Max, 3 tín hiệu trạng thái S,S,Sđược đưa tới bộ điều khiển Bus 8288 để tạo ra các tín hiệu điều khiển tương ứng với các chế độ cho trong bảng: S S S Chức năng chu kỳ Bus 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 INTA, báo nhận lệnh ngắt IORD, đọc cổng IO IOWR, ghi cổng IO HALT, dừng FETCH, nhận lệnh MEMRD, đọc bộ nhớ MEMWR, ghi bộ nhớ PASSIV, thụ động Các tín hiệu này được đưa đến các mạch điều khiển các khối khác trong hệ 8087, DMAC và các hệ VXL khác gép nối có khả năng chiếm dụng Bus Các IC phụ trợ: 3.1- IC giao động 8384 Chức năng: Mạch tạo tín hiệu xung nhịp 8284 được dùng để cung cấp xung nhịp với tần số thích hợp cho toàn hệ mà nó còn ảnh hưởng tới việc đồng bộ RESET và tín hiệu READY của CPU. 3.2- Mạch điều khiển Bus 8288 Như đã giươí thiệu ở phần trước vi mạch 8288 là mạch điều khiển Bus. Nó lấy một số tín hiệu điều khiển của CPU và cung cấp tất cả các tín hiệu điều khiển cần tiết cho hệ VXL khi CPU 8088 làm việc ở chế độ Max II- Tổ chức bộ nhớ: 1- Nguyên lý tổ chức bộ nhớ: 1.1- Nguyên tắc: Khi tổ chức bộ nhớ cho hệ VXL, cần tuân theo các nguyên tắc sau - Bộ nhớ bao gồm ROM và RAM. Trong đó miền địa chỉ của ROM phải chứa địa chỉ khởi động, còn RAM thì tuỳ theo từng hệ . - Bộ nhớ được tổ chức cho phép thâm nhập đến từng byte - Để thuận tiện cho chương trình, trong cho ROM hay RAM, bộ nhớ phải được thiết kế liên tục. Tính liên tục được thể hiện là 2 byte nhớ cạnh nhau, thì có địa chỉ khác nhau ở một đơn vị - Bộ nhớ được tổ chức có sự tương ứng 1-1 khi thâm nhập. Tức là khi CPU thâm nhập vào bộ nhớ, thì cứ ứng mỗi địa chỉ có duy nhát 1 byte nhớ được xác định và ngược lại. - Với 8086 và 8088 thì ROM nằm ở vùng điạ chỉ chứa cao chứa địa chỉ khởi động FFFF0h, còn RAM nằm ở vùng địa chỉ thấp. Nếu có sử dụng ngắt, thì Ram phải bắt đầu từ địa chỉ 00000h để chứa bảng vecto ngắt, còn nếu không sử dụng ngắt thì RAM có thể phân bố tuỳ ý trong vùng chứa địa chỉ thấp . - Với 80286 trở lên, thì ROM cũng nằm ở vùng địa chỉ cao của một Mbyte nhớ đầu tiên, còn RAM phân bố cả miền địa chỉ thấp và miền địa chỉ cao trên của ROM. Phần RAM trong địa chỉ thập gọi là bộ nhớ cơ sở, còn RAM ở bộ nhớ cao lf phần mở rộng 1.2- Các tín hiệu thâm nhập bộ nhớ: a- Chế độ Min: Trong chế độ Min bộ VXL 8086/8088sử dụng các tín hiệu ra thâm nhập bộ nhớ là 20bit tín hiệu địa chỉ A0-A19 xung chốt địa chỉ ALE, các tín hiẹu điều nhớ IO/M, RD, WR. Ngoài ra khi làm việc với bộ nhớ tốc độ thấp còn có tín hiệu vào READY để báo hiệu cho bộ vi xử lý trạng thái sẵn sàng làm việc với bộ nhớ. b- Chế độ Max: Trong chế độ Max bộ VXL 8086/8088 sử dụng các tín hiệu ra thâm nhập bộ nhớ là: 20 bit tín hiệu địa chỉ A0-A19 xung chốt địa chỉ ALE, các tín hiệu điều khiển MEMR, MEMW Ngoài thiết kế phần cứng sử dụng các điều khiển này để tổ chức bộ nhớ cho hệ đảm boả quá trình thâm nhập bộ nhớ theo nguyên tắc trên 2- Tổ chức cho hệ 8088: Bộ VXL 8086 là bộ VXL 16bit cho nên quá trình thâm nhập bộ nhớ có thể có byte hay word. Khi thâm nhập byte, ví dụ để thực hiện lệnh MOV AL, [BX], CPU thực hiện chu kỳ Bus đọc 2 byte nhớ. Chu kỳ Bus thứ 1, CPU đưa nội dung BX làm địa chỉ offset để thâm nhập bộ nhớ đọc byte dữ liệu thấp về thanh ghi AL, trong chu kỳ Bus thứ 2 CPU tăng địa chỉ offset trong BX lên 1 để thâm nhập và đọc byte dữ liệu cao về thanh ghi AH Sau đây là bản đồ bộ nhớ, bao gồm bộ nhớ RAM và bộ nhớ ROM Bộ nhớ RAM: A0-A19 A15-12 A11-A8 A7-A14 A3-A0 Số HEX RAM 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 1 1 1 0 0 0 1 1 1 1 0 0 0 0 0 1 1 1 1 0 0 0 11 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 00000h 007FFh 00800h 00FFh 01000h 017FFh 01800h 01FFFh RAM 1 RAM 2 RAM 3 RAM 4 Bộ nhớ ROM: A0-A19 A15-12 A11-A8 A7-A14 A3-A0 Số HEX ROM 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 0 0 0 1 1 1 1 0 0 0 0 0 1 1 1 1 0 0 0 11 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 FE000h FE7Fh FE800h FEFFFh FF000h FF7FFh FF800h FFFFFh RAM 1 ROM 2 ROM 3 ROM 4 3- Tổ chức cho hệ 8086: Logic nhớ: Với bộ VXL 8086, Bus dữ liệu ngaòi là 16 bit. Do đó bộ nhớ phải được tổ chức để thâm thập cả 8 bit và cả 16 bit trên Bus dữ liệu. INTEL đã chế tạo bộ VXL 16 bit loại này là 8086 hay 80286 có khả năng thâm nhập bộ nhớ để trao đổi dữ liệu 8 bit hay 16 bit với địa chỉ bất kỳ các bộ VXL sử dụng tín hiệu A0 và để điều khiểnviệc thâm nhập bộ nhớ. ý nghĩa các bit A0 và khi CPU cần thâm nhập bộ nhớ (hay vào/ra) trong các trường hợp khác nhau được cho trên bảng sau: A BHE ý nghĩa 0 0 1 1 0 1 0 1 Cả hai băng chẵn và lẽ Băng chẵn Băng lẽ Không dùng ý nghĩa sử dụng cho các bit A0 và BHE 4- Một số mạch phụ trợ: Các mạch phụ trợ là những mạch không bắt buộc phải có trong thành phần của hệ VXL mà nó chỉ xuất hiện do ý đồ của người thiết kế trong quá trình thiết kế hay trong quá trình sử dụng các loại linh kiện khác nhau như mạch tín hiệu READY, mạch kiểm tra PARITY, mạch các điều khiển CACHE,... Ta chỉ xét một số mạch đơn giản. 4.1- Mạch tạo tín hiệu READY: Mạch được sử dụng khi hệ thiết kế các IC nhớ có tốc độ chậm. Ví dụ như CPU 8088 – 5 Mc, thì các mạch nhớ phải có thời gian nhập tối đa là 450ns. Nếu muốn ghép EPROM 7232 tốc độ 450ns phải có mạch báo cho CPU xen thêm chu kỳ đợi. 4.2- Mạch kiểm tra Party: Việc kiểm tra trong bộ nhớ RAM dùng cho máy vi tính và các hệ VXL rất quan trọng, nó đảm bảo tránh sai sót khi thực hiện chương trình. Có thể có nhiều phương pháp phát hiện lỗi, tuy nhiên người ta thường dùng kiểm tra bit Party. Nội dung của phương pháp này như sau: Khi gửi 1 byte vào bộ nhớ, người ta sẽ chứa 1 bộ phụ để chứa bit party – là bit thứ 9. Khi đọc byte nhớ ra, ta sẽ kiểm tra lại nội dung với bit party đã được ghi trước kia, nếu sai thì có tín hiệu báo lỗi. - Nếu dùng party chẵn, thì khi tổng số bit 1 trong byte dữ liệulà chẵn ta ghi bit thứ 9 là số 0, trường hợp ngược lại ta ghi 1. - Nếu dùng party lẽ, thì tổng số 1 bit trong byte dữ liệu là chẵn, ta ghi bit thứ 9 là số 1, trường hợp ngược lại ta ghi 0. 4.3- Bộ điều khiển DRAM: Khi sử dụng bộ nhớ DRAM cần phải thiết kế mạch làm tươi và dồn kênh địa chỉ. Các mạch nhớ DRAM thương có 2 chế độ làm tươi. - Làm tươi cả mảng. Khi có mảng được làm tươi gồm 128, 256 hay 512 hàng với chu kỳ làm tươi tương ứng là 2, 4 hay 8ns. - Làm tươi từng hàng với tốc độ sao cho đảm bảo mỗi phần tử đều được làm tươi trong giưới hạn 15,6 s Việc làm tươi mỗi phần tử nhớ được thực hiện bằng cách thực hiện thâm nhập vào phần tử nhớ đó. Số lượng bit được làm tươi tuỳ thuộc vào tổ chức bên trong của mỗi bộ nhớ. Thường người ta thiết kế tổ chức làm tươi theo từng hàng là byte (8bit) trong mảng, do đó việc làm tươi được thực hiện nhờ việc đưa ra tín hiệu địa chỉ hàng và xung RAS để chọn ra 1 hàng. Các phần tử trong hàng được chọn, khi đó hàng được làm tươi. Địa chỉ các hàng cần được làm tươi trong 1 mảng nhớ được lấy từ bộ đếm 7, 8 hay 9 bit tuỳ theo kích thước của mảng đó. Nội dung của bộ đếm này được tăng lên sau mỗi chu kỳ làm tươi trong thời gian đã định ta có hình sau: A0-A7 đ/c hàng đ/c hàng đ/c hàng Chu kỳ làm tươi dùng tín hiệu RAS Có một số phương pháp làm tươi. Phương pháp đơn giản nhất là chỉ dùng tín hiệu (RAS – only - Refesh). Trong chu trình này, tín hiệu RAS được đặt ở mức tích cực và địa chỉ hàng đợi được đưa đến, còn RAS bị cấm. Như vậy DRAM được làm tươi lại hàng tương ứng nhưng dữ liệu không được thông và không thể đọc hay ghi vào bộ nhớ. Nhược điểm của phương pháp này là phải có mạch logic điều khiển ngoài hay là chương trình điều khiển cho việc làm tươi. Các phương pháp làm tươi sử dụng tín hiệu là làm tươi RAS sau khi có tín hiệu hay làm tươi ẩn. Các nhịp DRAM được sử dụng là loại hiện đại có sẵn bên trong bộ đệm và logic điều khiển. Khi đó việc làm tươi là công việc nội bộ của DRAM và được hoàn tất trong khi các bộ phận khác của bộ nhớ đang làm việc. kiểu làm tươi này còn được gọi là làm tươi ẩn vì trong lúc làm tươi một vùng nào đó của bộ nhớ, thì bộ VXL có thể ghi/đọc ở vùng nhớ khác. Với DRAM nói chung, mạch phối ghép phải thực hiện được các công việc: - Dồn kênh 2 tín hiệu cho mỗi mạch nhớ và cung cấp các xung chốt tín hiệu địa chỉ và - Thực hiện việc ghi đọc bộ nhớ - Làm tươi mỗi hàng trong thời gian thích hợp - Đảm bảo không có tranh chấp trong hoạt động của CPU và làm tươi. III- Tổ chức cổng vào/ra Việc phối ghép ở đây là phối ghép với các cổng vào/ra. Còn đối với các cổng điều khiển thì phần lớn có đầu ra dữ liệu là 8bit do đó việc phối ghép đơn giản và cũng tương tự và trình bày khi tổ chức cổng vào/ra. Các cổng vào/ra cơ bản là các thanh ghi song song, mỗi thanh ghi cổng có một địa chỉ riêng biệt để bộ VXL thâm nhập mỗi khi cần. Cũng như khi phối ghép với bộ nhớ, lệnh thao tác các cổng vào/ra hệ 16bit cũng có lệnh 8bit và 16bit. 1- Nguyên lý tổ chức vào/ra: 1.1- Các lệnh vào/ra cơ bản và các tín hiệu quản lý vào/ra: Trong các chế độ vào/ra tách biệt, các lệnh vào ra cơ bản là IN và OUT. Ta nghiên cứu các lệnh này: IN Acc, port ;(port) --> Acc OUT port, Acc ;Acc --> (port) Trong đó thanh ghi Acc là AL nếu lệnh thâm nhập là byte, và AX nếu lệnh thâm nhập là công word. Port là địa chỉ cổng cần thâm nhập. Với các hệ VXL 16 và 32 bit của hãng INTE, port có thể là 8 bit hay 16bit nếu địa chỉ của cổng là một hằng số (địa chỉ trực tiếp) hay là giá trị trong thanh ghi DX (địa chỉ gián tiếp). Tương tự như bộ nhớ, trong chế độ Min, các tín hiệu quản lý vào/ra gồm: Tín hiệu địa chỉ, ALE, IO/ và , . Tuỳ theo chế độ địa chỉ trực tiếp hay gián tiếp mà các tín hiệu địa chỉ khác nhau. Ta xem xét các ví dụ cụ thể của lệnh IN. Ví dụ: lệnh IN AL, 60h Đây là lệnh gián tiếp. Để thực hiện lệnh, CPU đưa ra 8 bit địa chỉ ra 8 byte thấp của Bus địa chỉ A7- A0 = 0100000 = 60h và ALE để chốt địa chỉ. Tín hiệu IO/ = 1 để xác định việc thâm nhập vào /ra. Sau đó các tín hiệu =0, = 1 để thực hiện đọc dữ liệu từ thanh ghi cổng về AL Với lệnh IN AL, DX ; Giả sử DX = 03F0h Thực hiện lệnh cũng tương tự lệnh IN AL, 60h, chỉ khác CPU trong trường hợp này đưa ra Bus địa chỉ 16 bit địa chỉ A15 – A0 = 0000001111110000 = 03F0h. Trong chế độ Max, các chế độ điều khiển thâm nhập vào /ra là và được thay thế cho IO/, , . Như vậy khi thiết kế phần cứng, nếu ta dùng 8 bit địa chỉ tổ chức cho cổng vào/ra thì trong chương trình nên sử dụng lệnh vào ra trực tiếp. 1.2- Các bước tổ chức vào/ra: Các bước tổ chức vào/ra tương tự như tổ chức bộ nhớ bao gồm: Bước 1: Căn cứ vào bài toán thực tế ta xác định cổng vào, cổng ra cần tổ chức, loại cổng và chọn IC cổng Bước 2: Xây dựng bản đồ địa chỉ và xác định các tín hiệu điều khiển Bước 3: Chọn các phương án giãi mã và chọn sơ đồ ghép nối 2- Tổ chức cho các cổng đơn giản: 2.1- Các cổng vào/ra đơn giản: Các cổng vào/ra đơn giản là các FF hay các thanh ghi đơn giản. - Mạch lật thường là các FF-D, hay JK - Thanh ghi thường là các thanh ghi chốt, mà các đầu ra là đầu ra ba trạng thái. 2.2- Sơ đồ tổ chức: Giải mã địa chỉ Các cổng IO Tín hiệu địa chỉ Tín hiệu điều khiển (IO/M,RD,WR) Dữ liệu Sơ đồ chung phối ghép các cổng đơn giản Trong trường hợp này các tín hiệu địa chỉ và điều khiển điều được đưa vào bộ giải mã địa chỉ và đầu ra bộ giải mã được đưa tới các thanh ghi cổng. Trong chế độ Min, các tín hiệu điều khiển là IO/, , . Mạch được thiết kế sao cho: - Nếu IO/ = 0, bộ giải mã không được làm việc - Nếu = 0 ,= 1 Bộ giãi mã sẽ chọn IC cổng vào có địa chỉ tương ứng ở đầu vào bộ giải mã. - Nếu = 0, = 1 Bộ giải mã sẽ chọn IC cổng ra có địa chỉ tương ứng ở đầu vào bộ giải mã Trong chế độ Max, các tín hiệu điều khiển và đưa vào bộ giải mã và ttương tự như chế độ Min - Nếu =1, =1 Bộ giải mã không được làm việc - Nếu =0, =1 Bộ giãi mã sẽ chọn IC cổng vào có địa chỉ tương ứng ở đầu vào bộ giải mã. - Nếu =1, =0 Bộ giải mã sẽ chon IC cổng ra có địa chỉ tương ứng ở đầu vào bộ giải mã 2.3- Tổ chức cho hệ 8088: Tương tự như tổ chức bộ nhớ, khi tổ chức cho hệ vào/ra 8088 có Bus dữ liệu 8bit, việc thâm nhập các cổng 8bit được thực hiện trong 1 chu kỳ Bus. Đối với cổng 16 bit phải thiết kế bằng 2 cổng 8bit có địa chỉ nối tiếp và việc thâm nhập cổng 16 bit sẽ thực hiện bởi 2 chu kỳ Bus liên tiếp nhau. 2.4- Tổ chức cho hệ 8086 Tổ chức vào/ra cho hệ 16 bit 8086 trong trường hợp chung có khác hệ với 8088. Nếu các cổng vào ra là các cổng 8 bit và các lệnh thâm nhập là 8 bit, thì việc tổ chức cũng giống hệ 8088 với byte thấp của Bus dữ liệu d0 – d7. Nếu các cổng vào ra là các cổng 16 bit và các lệnh thâm nhập là 16 bit, thì cổng 16 bit được tổ chức bằng 2 cổng 8 bit có địa chỉ kế tiếp nhau, mỗi cổng được điều khiển bằng 1 tín hiệu phân trang và . Cổng băng thấp được nối vào d0 – d7 và được điều khiển bằng bit , cổng băng cao nối vào d8 – d15 và được điều khiển bằng bit . 8086 đưa các tín hiệu phân băng khi thâm nhập vào ra tương tự như đối với bộ nhớ. Địa chỉ của cổng chính là địa chỉ của băng thấp và khi tổ chức chú ý phải đặt địa chỉ này là chẵn. Chú ý: Tổ chức vào/ra phân băng trong trường hợp Bus dữ liệu 16 bit trở lên, cho phép thâm nhập cổng IO cả byte và word. Tuy nhiên trong thực tế, các cổng vào ra được tổ chức cho ngoại vi là cố định theo độ dài của từ dữ liệu. Tức là cổng nào cho byte, cổng nào cho word là cố định. Khi có việc tổ chức vào ra có độ dài dữ liệu là word không cần phân băng. 3- Tổ chức cho các cổng vào/ra lập trình: 3.1- Các cổng vào/ra lập trình: Các cổng vào ra lập trình sử dụng cho hệ 16 bit của INTEL thường là 8155A, 8255A, 8355A, 8755, ...Các cổng điều khiển 8259A, 8237A, 8257... a- Cổng vào/ra lập trình – 8255A Mạch 8255A là mạch phôí ghép vào/ra lập trình được là một IC có mật độ lớn 8255A bao gồm 3 cổng 8 bit PA, PB, PC, được dùng phối ghép ngoại vi, là một thanh ghi điều khiển hoạt động cho 8255A. 4 thanh ghi này được địa chỉ hoá bằng 2 bit địa chỉ A0 và A1. Cấu trúc bên trong của 8255A sẽ được chi tiết sau: d0-d7 Pa0-Pa7 8255A Pc0-Pc7 A0 A1 Reset Pb0-Pb7 - Các chân dữ liệu d0-d7 để đưa dữ liệu ra Bus dữ liệu Chân A0 và A1 là các chân tín hiệu vào để thực hiện đọc hay ghi cho các thanh ghi trong IC. Chân Reset, chân tín hiệu vào để thực hiện đọc hay ghi cho các thanh ghi trong IC Chân là chân tín hiệu vào chọn chip. Nếu = 0 thì IC 8255A mới được làm việc, tức là mới có thể thực hiện đọc và ghi cho các thanh ghi trong IC. Chân CS được nối với đầu ra của bộ giãi mã chọn chíp Các chân tín hiệu Pa0-Pa7, Pb0-Pb7, Pc0-Pc7 là các chân tín hiệu tương ứng với các cổng Pa, Pb, Pc được nối tới ngoại vi. b- Mạch điều khiển ngắt - 8259A Mạch điêù khiển ngắt dùng PIC 8259A có các chân như sau d0-d7 IRQ0 IRQ1 8259A A0 IRQ7 CS INT INTA Các chân dữ liệu d0-d7 để đưa dữ liệu ra Bus dữ liệu Chân A0, tín hiệu vào địa chỉ hoá cho các thanh ghi trong 8259A Chân và chân tín hiệu vào để thực hiện đọc hay ghi cho các thanh ghi trong IC. Chân là chân tín hiệu vào chọn chíp. Nếu =0 thì IC 8259A mới được làm việc, tức là mới có thể thực hiện đọc và ghi cho các thanh ghi trong IC, chân được nối với đầu ra của bộ giãi mã chọn chíp 3.2- Tổ chức cho hệ 8088 Tổ chức cổng vao/ra dùng các IC cổng 8bit lập trình cho hệ VXL 8088 có thẻ cho cổng byte hay cổng word tuỳ theo yêu cầu bài toán thiết kế. - Nếu tổ chức cổng byte tương tự như khi tổ chức cho hệ 8 bit và việc tổ chức la bình thường. Nếu tổ chức cho cổng word ta chỉ chú ý là phải sử dụng 2 cổng 8 bit có địa chỉ kế cận nhau. CPU 8088 sử dụng 2 chu kỳ Bus để thâm nhập cổng này. Nếu dùng IC 8255A, ta có các cách để thực hiện + Hoặc sử dụng 2 cổng PA hay PB của 2 IC làm 1 cổng 16 bit, khi đó ta dùng bit A0 làm bit phân định để chon IC + Hoặc dùng 2 cổng PA hay PB của 2 IC làm 1 cổng 16 bit, khi đó ta dùng bit A0 làm bit định phận để chọn IC 3.3- Tổ chức cho hệ 8086 Trong hệ 8086, nếu ta sử dụng cổng IC là 8 bit để tổ chức cổng 16 bit cho hệ thì phải ghép 2 cổng 8 bit với nhau. Do việc ghép các tín hiệu điều khiển để thâm nhập đồng thời cả 16 bit đối với IC lập trình không thực hiện được, nên khi tổ chức phải phân băng chẵn và lẻ dùng 2 tín hiệu điều khiển A0 và BHE. Phương pháp nghiên cứu tổ chức phần cứng hệ vi xử lý Khi nghiên cứu để tổ chức bộ nhớ vào ra của hệ vi xử lý theo các bước sau: - Nghiên cứu chức năng các chân tín hiệu của bộ VXL trên sơ đồ cấu trúc và sơ đồ chân, từ đó xác định được các tín hiệu điều khiển khi bộ VXL thực hiện thâm nhập bộ nhớ và vào/ra. Tìm ra các mức của tín hiệu điều khiển khi thực hiện các chu kỳ Bus của CPU để xây dựng bộ giãi mã địa chỉ Xác định các IC vào/ra và nghiên cứu các chân của nó để xác định các tín hiệu được nối khi tổ chức. Chương III Các bộ VXL thông dụng khác I- Các bộ vi xử lý tiên tiến của INTEL: Các bộ vi xử lý thế hệ sau hãng INTEL như 80186, 80286, 80386, 80486, Pentium với các phương thức xử lý tiên tiến. Trong phần này chúng tôi chỉ giới thiệu các đặc tính tiên tiến các IC của họ này. 1- Khái niệm chung: Bộ vi xử lý 80186 được chế tạo cho các ứng dụng cụ thể nên nó có thêm một mạch chức năng phụ được đặt ngay trong IC như: mạch tạo xung đồng hồ, mạch xử lý ngắt ưu tiên, bộ định thời lập trình được... Về nguyên lý, bộ vi xử lý 80186 giống như 8086 và ở đay ta không xét đến. Các bộ vi xử lý 80286 , 80386... được chế tạo sử dụng cho các thế hệ máy tính cho nên việc tăng tốc độ xử lý và quản lý tài nguyên được đặt lên hàng đầu. Vì thế việc chế tạo bộ vi xử lý này có các tính năng tiên tiến cũng dựa theo hướng đó. Bộ bộ vi xử lý 80286 là bộ vi xử lý 16 bit hoàn chỉnh với 16 bit dữ liệu và 24 bit địa chỉ. Bắt đầu từ 80286, các bộ vi xử lý được cấu trúc để có thể trực tiếp thao tác với bộ đồng xử lý và bộ vi xử lý khác. Để hổ trợ cho việc quản lý bộ nhớ ảo, 80286 có thêm khối quản lý bộ nhớ MMU (Memory Managememt Unit) các thanh ghi quản lý bộ nhớ và các thanh ghi mảng CS, DS, ES, SS cũng được thay đổi . Nó bao gồm 2 phần: Phần mở có thể can thiệp được bằng chương trình và phần kín được MMU tự động sao từ bộ nhớ sang mỗi khi bộ chọn của nó thay đổi giá trị. Một số đặc điểm là hệ của 80286 có các lệnh dặc quyền cho phép quản lý bộ nhớ ảo. Bộ vi xử lý 80386 là bắt đầu của bộ vi xử lý 32 bit, Bus bên trong 32 bit, các lệnh xử lý 32 bit. Bộ vi xử lý có Bus dữ liệu là 16 bit hay 32 bit và 32 địa chỉ cho phép quản lý 1 miền bộ nhớ rộng lớn. Trong 80386, ngoài khả năng quản lý bộ nhớ ảo, còn có khả khẳ năng phân trang. Để hổ trợ cho điều này, trong MMU của 80386 còn có đơn vị trang để quản lý theo trang và các thanh ghi điều khiển có các bit chuyển chế độ. Bộ vi xử lý 80486 được xây dựng trên cơ sở 386. ngoài ra các tính năng tiên tiến của 80386, 80486 còn có thêm bộ nhớ 8Kbyte bên trong (cach nội bộ) để nhớ đệm lệnh và dữ liệu trong quá trình hoạt động. Bộ vi xử lý 80486DX còn được tích hợp luôn bộ đồng xử lý bên trong. Về cấu trúc, bộ vi xử lý pentium đảy nhanh tốc độ xử lý bằng cách gia tăng thêm 8Kbyte cach so với 80486, và như vậy bên trong Pentium sẽ có 8Kbyte cach cho lệnh và 8Kbyte cach cho dữ liệu. Pentium cũng gia tăng thêm 1 đơn vị số học và logic (ALU) và 2 bộ ALU này có thể làm việc bên trong. II- Giới thiệu các tính năng tiên tiến: Phần này chỉ ghi giới thiệu khái niệm một số tính năng cơ bản của bộ vi xử lý INTEL như quản lý bộ nhớ ảo, phân trang bộ nhớ, xử lý song song. 1- Cơ chế quản lý bộ nhớ ảo: Các bộ vi xử lý INLEL, tuỳ từng loại, mà có khả năng quản lý bộ nhớ theo chế độ địa chỉ thực, ảo theo mảng hay phân trang. Bộ vi xử lý 80286 có thể quản lý theo chế độ thực và chế độ địa chỉ ảo. Mỗi bộ vi xử lý có các bit địa chỉ đầu ra mà tương ứng với nó có thể quản lý một miền nhớ tối đa. Ví dụ 80286 có 24 bit địa chỉ từ A0-A23, cho nên có thể quản lý tối đa miền nhớ là 2 byte = 16Mbyte. Miền nhớ trên gọi là miền nhớ vật lý. Tuy nhiên không gian nhớ trong mỗi chế độ khác nhau. - Trong chế độ thực, bộ vi xử lý cũng chỉ quản lý tối đa là 1M byte nhớ giống như của 80386. Đó là 1Mbyte trong miền địa chỉ thấp nhất của không gian nhớ vật lý (khi đó các bit nhớ địa chỉ cao bằng 0). - Trong chế độ ảo, nó có thể quản lý bộ nhớ lớn hơn bộ nhớ vật lý bằng cách thông qua các bộ mô tả và cổng giao dịch. Trong chế độ địa chỉ ảo, bộ vi xử lý 80286 quản lý địa chỉ ảo thông qua cổng giao dịch. Để khảo sát các vấn đề này trước tiên ta xem xet nguyên lý quản lý địa chỉ ảo. Nguyên lý cơ bản của địa chỉ ảo là phép tạo mảng nhớ. mảng nhớ được định nghĩ như một tập hợp các ô nhớ liên tục 64kbyte và có thể ttrao đổi bộ nhớ trung tâm và bộ nhớ ngoài. Mỗi mảng nhớ được định nghĩa bằng 3 thông số: + Địa chỉ cơ sở + Kích thước mảng (16 bit) + Quyền thâm nhập MMU cho phép chuyển địa chỉ của bộ nhớ logic (ảo) thành địa chỉ của bộ nhớ vật lý. Một địa chỉ trong chương trình có 2 thành phần: + Bộ chọn mảng 16 bit + offset (độ dời) 16 bit (hay 32 bit tuỳ hệ) - Trong chế độ thực bộ chon mảng chứa địa chỉ cơ sở của mảng nhớ. Do đó việc xác định địa chỉ vật lý tương tự như của 8086 Đ/c vật lý = Đ/c cơ sở*16 + offset Có 2 loại bảng các bộ mô tả: + Bảng các bộ mô tả không gian nhớ toàn cục GDT + Bảng các bộ mô tả không gian nhớ cục bộ LDT Trong các GDT hay LDT chứa các bộ mô tả, và mỗi bộ mô tả gồm các thông số để xác định mảng nhớ. Trong 1 bảng GDT hay LDT có nhiều lọai bộ mô tả như bộ mô tả mảng lệnh, mảng dữ liệu, mảng cần cho thông tin hệ thống,...tương ứng. a- Cơ chế bảo vệ Trong chế độ quản lý bộ nhớ ảo có thể phân cấp mức đặc quyền thâm nhập. Để mô tả các mức đặc quyền vùng các bộ vi xử lý của INTEL dùng 2 bit tương ứng với 4 mức quyền trong chế độ quản lý theo mảng. Nếu gọi mức đặc quyền của mảng nhớ được định nghĩa trong bộ mô tả mảng là DPL (discription privilige level) và mức đặc quyền của bộ chọn khi thâm nhập vào mảng nhớ là RPL (request privilige level ) thì cơ chế bảo vệ chung là: Muốn thâm nhập vào một mảng nhớ thì mức đặc quyền của bộ chọn RPL sẽ phải lớn hơn mức đặc quyền mô tả mảng nhớ đó. b- Cơ chế thay đổi nhiệm vụ: Mỗi nhiệm vụ trong cơ chế bộ nhớ ảo đều được xây dựng một segment trạng thái nhiệm vụ tương ứng trong bộ nhớ (TSS). Mỗi một TSS cho một nhiệm vụ chứa các trạng thái của nhiệm vụ đó như trạng thái hiện tại của các thanh ghi trong CPU, các thông in của vùng dữ liệu, vùng địa chỉ của nhiệm vụ phải trở về,... Quá trình thay đổi nhiệm vụ được thực hiện tự động theo từng bước như sau: Bước 1: Cất dữ tất cả trạng thái các thanh ghi của nhiệm vụ đang hạy vào TSS của nhiệm vụ đó. Bước 2: Nạp vào thanh ghi TSS giá trị của bộ chọn cho phép thâm nhập vào bộ mô tả TSS của nhiệm vụ mới. Đồng thời nạp vào TSS mới địa chỉ quay trở về của nhiệm vụ cũ. Bước 3: Nạp các thanh ghi của 80286 từ các giá trị của TSS mới. Nhiệm vụ bắt đàu từ chổ trước đây nó bị dừng Cơ chế thay đổi nhiệm vụ được thực hiện thông qua các cổng giao dịch. Tuy nhiên tuỳ từng loại mà quá trình thay đổi nhiệm vụ diễn ra khác nhau. Quá trình thay đổi nhiệm vụ bên trongmột nhiệm vụ Là quá trình mà khi CPU đang thực hiện một nhiệm vụ thì một nhiệm vụ khác được tiến hành hoặc phục vụ, hoặc nối tiếp với nhiệm vụ đó. Đây chính là quá trình thay đổi nhiệm vụ khi thực hiện các lệnh gọi CALL, JMP hay ngắt. 2- Cơ chế quản lý bộ nhớ phân trang: Cơ chế phân trang bộ nhớ của bộ VXL INTEL được bắt đầu từ 80386. Các bộ vi xử lý này có thể quản lý bộ nhớ theo cả chế độ thực, ảo và phân trang. ở chế độ thực, nó cũng giống như 80286. Còn ở chế độ ảo, việc chuyển hoá địa chỉ được thực hiện sơ đồ sau: Chỉ số Cỏ sở --> offset D.chuyển Bộ nhớ vật lý Đơn vị quản lý theo mảng Đơn vị quản lý theo hang Bộ chọn 32bitđ/c tuyến tính 32bit đ/c Vật lý Cở chế quản lý địa chỉ của 80386 Trong chế độ địa chỉ ảo, đơn vị quản lý địa chỉ theo mảng sẽ chuyển địa chỉ logic 32 bit địa tuyến tính. Nếu đơn vị trang không làm việc thì được đưa ra làm 32 bit địa chỉ vật lý thâm nhập bộ nhớ. Nếu đơn vị quản lý theo trang làm việc, nó sẽ chuyển 32 bit địa chỉ tuyến tính thành 32 bit địa chỉ vật lý. a- Cơ chế quản lý bộ nhớ theo mảng: Bộ chọn Bộ mô tả mảng Đ/c cơ sở offset 32bit đ/c vật lý Cơ chế quản lý theo mảng của 80386 Các bộ mô tả cũng tương tự như 286, chỉ khác là người ta ghép bộ mô tả mảng hệ thống và của giao dịch bằng 1 bảng chung và phân biệt bằng 4 bit kiểu. b- Cơ chế phân trang: Khái niệm: Cơ chế phân trang chỉ có trong chế độ bảo vệ. Trong cơ chế phân trang, bộ nhớ được chia thành các trang có độ dài thống nhất. Như vậy, 1 modul chương trình hay dữ liệu có thể chứa nhiều trang và tại một thời điểm chỉ có một số trang tồn tại trong bộ nhớ Tổ chức theo trang: Các cơ chế tổ chức bộ nhớ theo trang của MP 80386 gồm 3 thành phần là thư muc trang, bảng các trang và trang. Cơ chế xác địng địa chỉ theo trang từ địa chỉ tuyến tính như hình sau: 31 22 21 12 11 0 CR3 Địa chỉ tuyến tính Thư mục trang Bảng các trang Bộ nhớ cho người sử dụng Cơ chế quản lý theo trang của 80386 Địa chỉ tuyến tính 32 bit được chia làm 3 phần. Thanh ghi CR3 32 bit trong CPU chứa địa chỉ cơ sở cho bảng thư mục trang, nó được cộng không dấu với 10 bit cao của địa chỉ tuyến tính để xác định được trang và địa chỉ vât lý của trang cần thâm nhập. Như vậy, thư mục trang, bảng các trang và mỗi trang đều có một độ dài xác định. Đối với các bộ vi xử lý của INTEL, chúng đều có độ dài 4Kbyte. 3- Xử lý song song và bộ nhớ đệm: Trong các bộ vi xử lý tiên tiến của INTEL có 2 dạng xử lý song sonng cơ bản là ống đường (Pipeline) và siêu vô hướng (Superscalar) Xử lý đường ống là loại xử lý mà để thực hiện một việc, người ta chia nó làm nhiều công đoặn, mỗi công đoặn được thực hiện ở mỗi tầng. Các tầng này được hoạt động độc lập và được điều khiển đồng bộ chung của ống. Trong bộ vi xử lý Pentium của INTEL có 2 quá trình thực hiện xử lý đường ống là quá trình thực hiện pipeline lệnh nguyeen và lệnh thực hiện lệnh dấu phẩy động. Pentium cho phép thực hiện siêu vô hướng trên 2 đường ống thực hiện là U-pipeline và V-pipeline, mỗi ống thực hiện một số dạng lệnh. Thông thường, các lệnh phức tạp hơn (như dịch, quay, dấu phẩy động...) được thực hiện trên đướng ống U Để tăng khả năng thực hiện xử lý song song, người ta thiết kế các bộ đệm (bộ nhớ cách) bên trong các bộ vi xử lý. Pentium có 2 bộ nhớ đệm là 8Kbyte cho lệnh và 8Kbyte cho dữ liệu. Kết luận Khi nghiên cứu bộ vi xử lý là nghiên cứu đàu tiên và chủ đạo trong nghiên cứu một hệ vi xử lý. Từ sự nghiên cứu trên đã giúp cho chúng ta hiểu được khoa học kỹ thuật ngày càng phát triển và có thể nói là như bảo lũ, đã làm cho chúng ta không thể nhắc đến công nghệ vi xử lý của hãng INTEL. Nó không những tác động đến ngành công nghệ thông tin mà còn giúp cho các ngành công nghiệp ngày càng phát triển. Với sự phát triển hệ vi xử lý của hãng INTEL đã đưa con người ngày một được dễ tiếp cận với những cái tinh vi hơn, mới hơn! Em rất chân thành cảm ơn cô giáo Hồ Bích Hà đã giúp em hoàn thành đề án “Nghiên cứu về các loại vi xử lý của hãng INTEL” Tài Liệu Tham Khảo 1- Kỹ thuật VXL: Của: PGS,TS Nguyễn Duy Thảo THS Lê Xuân Bằng 2- Kỹ thật ghép nối máy tính: Của: Nguyễn Mạnh Dang 3- Kỹ thuật VXL và máy vi tính: Của: Đỗ Xuân thụ-Hồ Khánh Lân

Các file đính kèm theo tài liệu này:

  • docLVV472.doc