Bài giảng Kỹ thuật vi xử lý - Phạm Hoàng Duy
Tóm tắt Bài giảng Kỹ thuật vi xử lý - Phạm Hoàng Duy: ...y 2 word Viết lệnh: CMP Đích, Gốc. Mô tả: Đích – Gốc. Trong đó toán hạng đích và gốc có thể tìm được theo các chế độ địa chỉ khác nhau. Nhưng phải chứa dữ liệu có cùng độ dài và không được phép đồng thời là 2 ô nhớ. Lệnh này chỉ tạo các cờ, không lưu kết quả so sánh, sau khi so sánh các to...uôn được nó ra mã ASCII cần thiết cho việc hiện thị. 4.4 Ví dụ 4 Trong thanh ghi BX có sẵn 4 số hệ mười sáu, mỗi số được biểu diễn bằng 1 ô mẫu: Hãy lập trình để biến đổi thanh ghi BX thành: (Ví dụ: nếu như lúc đầu thanh ghi BX chứa giá trị 1234H thì sau khi biến đổi, BX sẽ chứa giá trị ...ịa chỉ) cùng các tín hiệu WR và RD sẽ chọn ra 4 thanh ghi bên trong của mạch USART, thanh ghi đệm dữ liệu thu, thanh ghi đệm dữ liệu phát, thanh ghi trạng thái và thanh ghi điều khiển (Bảng 4-7). Bảng 4-7. Các thanh ghi bên trong của 8251A A0 RD WR Chọn ra 0 0 1 Thanh ghi đệm dữ liệu thu ...
2 thanh ghi khác nằm trong bộ nhớ RAM trong chia thành bốn băng, B0-B3, mỗi băng gồm 8 thanh ghi R0-R7. Thanh ghi Cờ là thanh ghi mã các bít cho biết trạng thái của một số lệnh và được gộp vào thanh ghi từ trạng thái chương trình (Program Status Word - PSW). 8051 có các cờ: cờ CHƯƠNG 6. CÁC BỘ VI ĐIỀU KHIỂN 129 nhớ C, nhớ phụ AC, tràn OV và chẵn lẻ P. Các cờ người dùng F0 và GF0-1. Các cờ người dùng có thể tùy biến theo yêu cầu người viết chương trình như lưu các sự kiện. Con trỏ ngăn xếp SP là thanh ghi 8 bít lưu vị trí đỉnh ngăn xếp trong bộ nhớ RAM trong của 8051. Các thanh ghi chức năng đặc biệt nằm trong bộ nhớ RAM trong từ địa chỉ 00-7Fh. Các thanh ghi này có thể được đặt tên riêng trong một mã lệnh và tham chiếu qua địa chỉ. Ví dụ thanh ghi A còn được tham chiếu qua địa chỉ 0E0h. 2.3 Tập lệnh 8051 hỗ trợ các chế độ địa chỉ sau: 1. Chế độ địa chỉ trực tiếp: dữ liệu dành cho lệnh là một phần trong mã lệnh. Từ gợi nhớ cho chế độ này là dấu #. Ví dụ MOV A, #100. 2. Chế độ địa chỉ thanh ghi: thanh ghi lưu giá trị dữ liệu. 3. Chế độ địa chỉ trực tiếp: địa chỉ ô nhớ là một phần của câu lệnh 4. Chế độ địa chỉ gián tiếp: giá trị thanh ghi cho biết địa chỉ của dữ liệu. Từ gợi nhớ là @. Ví dụ MOV A, @R0 ; Nạp dữ liệu tại ô nhớ có giá trị R0 vào thanh ghi A. Tập lệnh 8051 hỗ trợ các thao tác di chuyển dữ liệu, các thao tác lô-gíc, các phép toán số học và các câu lệnh nhảy và gọi hàm. Ví dụ 6-1 Đoạn chương trình 8051 Nhan: INC 3Ch ; Tăng giá trị ô nhớ 3Ch lên 1 MOV A, #2Ah ; A=2Ah XRL A, 3Ch ; XOR A với giá trị tại ô nhớ 3Ch JNZ Nhan ; Nhảy tới Nhan nếu kết quả XOR khác 0 NOP ;không làm gì cả 3. GIỚI THIỆU MỘT SỐ ỨNG DỤNG TIÊU BIỂU CỦA VI ĐIỀU KHIỂN Việc chuyển đối tín hiệu tương tự sang số và ngược lại thường gặp khi ta muốn kết nối máy tính với thế giới tương tự. Trong phần này giới thiệu sử dụng bộ vi điều khiển kết nối với bộ chuyển đổi tương tự số (A/D) và ngược lại (D/A). Thông thường các bộ chuyển đổi cho phép kết nối thông qua kênh dữ liệu 8 bít, ba trạng thái và cho phép điều khiển thôngqua các tín hiệu đọc/ghi, chọn chíp. 3.1 Chuyển đổi số tương tự (D/A) Hình 6-3 giới thiệu kết nối giữa vi điều khiển 8051 và bộ chuyển đổi D/A khái quát. Bộ chuyển đổi D/A có đặc điểm sau: Vout = -Vref×(byte đầu vào/100H) và Vref = 10V CHƯƠNG 6. CÁC BỘ VI ĐIỀU KHIỂN 130 Thời gian chuyển đổi 5s. Trình tự điều khiển ~CS rồi ~WR. Cổng 1 được nối với các tín hiệu dữ liệu của bộ chuyển đổi còn cổng 3 dùng để điều khiển. Trong ví dụ này, thiết bị tạo ra sóng hình sin với chu kỳ 1000Hz và có thể thay đổi theo chương trình. Vref đặt bằng -10V dạng tín hiệu đầu ra thay đổi từ 0V tới +9, 96V. Chương trình dùng bảng tra cứu để sinh ra biên độ sóng sin. Chu kỳ được thiết lập căn cứ vào khoảng thời gian truyền dữ liệu cho bộ chuyển đổi. Với S điểm lấy mẫu, chu kỳ ngắt nhất Tmin= 5×S s tần số tối đa fmax = 200. 000/S. Với sóng có tần số 1000Hz, cần số lượng mẫu là 200. Tuy nhiên thực tế chạy chương trình cho thấy thời gian để tạo ra một mẫu cần 6s và thời gian để chuyển sang mẫu kế tiếp mất hơn 2s. Như vậy thực tế chỉ cho phép số lượng mẫu là 166. Ví dụ 6-2. Chương trình chuyển đổi D/A . org 0000h daconv: clr p3, 2 ; Chọn chíp mov dptr, #bang : lấy địa chỉ cơ sở bảng repeat: mov r1, #0A6h ; Khởi tạo R1 = 166 next: mov a, r1 ; Lấy địa chỉ offset của bảng movc a, @a+dptr ;Lấy giá trị mẫu mov p1, a ; Gửi mẫu ra cổng 1 clr p3, 3 setb p3, 3 djnz r1, next sjmp repeat Hình 6-3. Ghép nối bộ chuyển đổi D/A với 8051 CHƯƠNG 6. CÁC BỘ VI ĐIỀU KHIỂN 131 ; Bảng chuyển đổi sử dụng hàm cosin để tính giá trị biên bộ của tín hiệu tại đầu ra. 83 giá ;trị đầu thể hiện biên độ từ cực đại tới nhỏ hơn 0, 83 giá trị còn lại từ 0 tới cực đại. Với 83 ; mẫu cho nửa chu kỳ giá trị góc của hàm cosin thay đổi 2, 17 độ cho các mẫu kế tiếp. bang: . db 00H ; . db ffH ; s1:FF×cos(0) . db feH ; s2:7FH+FF×cos(2, 17) . db feH ; s3:7FH+FF×cos(2, 17×2) . db 81H ; s42:7FH+FF×cos(88, 9) . . . . . . . . db 00H ; s84:7FH+FF×cos(180) . . . . . . . db feH ; s166:7FH+FF×cos(2, 17) 3.2 Chuyến đổi tương tự số (A/D) Hình 6-4 sử dụng bộ chuyển đổi tương tự số 8 bít có các đặc tính sau: Tín hiệu lấy mẫu: Vin = Vref-, dữ liệu =00h ; Vin=Vref+, dữ liệu = FFh Thời gian lấy mẫu: 1 s Trình tự điều khiển: CS, WR rồi RD (ở mức tích cực thấp). Trong hình vẽ, cổng 1 của 8051 nối với kênh dữ liệu của bộ chuyển đổi còn cổng 3 nối với các tín hiệu điều khiển. Ví dụ 6-3. Chương trình chuyển đổi A/D Hình 6-4. Ghép nối 8051 và chuyển đổi A/D CHƯƠNG 6. CÁC BỘ VI ĐIỀU KHIỂN 132 Đoạn chương trình sau số hóa các tín hiện Vref với chu kỳ 100s và lưu kết quả vào trong bộ nhớ RAM 4000H:43E7H. . equ begin, 4000H ;Địa chỉ bắt đầu . equ delay, 74H ;trễ 87s . equ end1, 43H ;Địa chỉ kết thúc byte cao . equ end2, e8H ;Địa chỉ kết thúc byte thấp adconv: mov dptr, #begin clr p3, 2 ; Gửi ~CS tới bộ A/D next: clr p3, 3 ; Tạo xung ~WR tới bộ A/D setb p3, 3 ; clr p3, 4 ;Tạo xung ~RD mov a, p1 ;Đọc dữ liệu từ A/D setb p3, 4 ;Kết thúc đọc mov @dptr, a ;Lưu vào RAM inc dptr ;Tăng con trỏ RAM lên 1 mov a, dph ;Kiểm tra kết thúc cjne a, #end1, wait mov a, dpl cjne a, #end2, wait sjmp done ; Kết thúc khi tới vị trí cuối cùng wait: mov r1, #delay ;Trễ 87s here: djnz r1, here sjmp next done: sjmp done . end CHƯƠNG 7. GIỚI THIỆU MỘT SỐ VI XỬ LÍ TIÊN TIẾN 133 Chương 7. GIỚI THIỆU MỘT SỐ VI XỬ LÍ TIÊN TIẾN 1. CÁC VI XỬ LÍ TIÊN TIẾN DỰA TRÊN KIẾN TRÚC INTEL IA-32 1.1 Giới thiệu IA-32 IA-32 là kiến trúc 32 bít do hãng Intel phát triển lần đầu tiên được giới thiệu trên bộ vi xử lý Intel 80386. Kiến trúc IA-32 hỗ trợ ba chế độ hoạt động: chế độ bảo vệ (protected mode), chế độ thực (real mode) và chế độ quản lý hệ thống SMM (System Management Mode). Các chế độ hoạt động quyết định các lệnh và các chức năng mà chương trình có thể truy nhập: Chế độ bảo vệ: là chế độ căn bản của bộ xử lý. Chế độ này cho phép chạy các phần mềm 8086 trong môi trường đa nhiệm và bảo vệ. Chế độ này còn được gọi là chế độ 8086 ảo. Chế độ địa chỉ thực: Ché độ này cung cấp môi trường lập trình 8086 với một số tính năng mở rộng như chuyển sang chế độ bảo vệ. Để bộ xử lý hoạt động ở chế độ này thông thường phải khởi động lại bộ xử lý. Chế độ quản lý hệ thống - SMM: Chế độ này cung cấp cho hệ điều hành các cơ chế trong suốt phục vụ nhiệm vụ cụ thể như quản lý năng lượng hay bảo mật hệ thống. Chế độ này được kích hoạt thông qua tín hiệu SMM hoặc tín hiệu này nhận được từ bộ điều khiển ngắt tiên tiến. Trong chế độ quản lý hệ thống bộ xử lý chuyển qua lại các không gian địa chỉ riêng biệt của các chương trình trong khi lưu lại ngữ cảnh căn bản của các chương trình đang chạy. Các đoạn mã SMM có thể được thực hiện hoàn toàn trong suốt. Ngay khi quay trở lại từ chế độ SMM, bộ xử lý được khôi phục lại trạng thái giống như trước khi ngắt SMM xảy ra. Bất kỳ chương trình nào chạy trên bộ xử lý IA-32 được cung cấp các tài nguyên để thực hiện lệnh, lưu đoạn mã, dữ liệu và các thông tin trạng thái. Các tài nguyên này tạo lập nên môi trường thực thi cho chương trình: Không gian địa chỉ: bất cứ chương trình nào đều có thể đánh địa chỉ không gian nhớ tuyến tính tới 232 byte hay 4GB và không gian địa chỉ vật lý có thể lên tới 236 khi sử dụng cách đánh địa chỉ mở rộng. Các thanh ghi thực thi căn bản: bao gồm 8 thanh ghi dùng chung, sáu thanh ghi đoạn, thanh ghi cờ và con trỏ lệnh EIP. Các thanh ghi đấu phẩy động x87FPU: bao gồm 8 thanh ghi dữ liệu, thanh ghi điều khiển, thanh ghi trạng thái, thanh ghi lệnh, thanh ghi con trỏ toán hạng, thẻ và mã lệnh. Các thanh ghi này cho phép thực hiện các phép toán với độ chính xác kép mở rộng hay với số nguyên 8 byte. CHƯƠNG 7. GIỚI THIỆU MỘT SỐ VI XỬ LÍ TIÊN TIẾN 134 Các thanh ghi MMX: bao gồm 8 thanh ghi hỗ trợ cơ chế thực hiện 1 lệnh và nhiều dữ liệu với các thao tác các số nguyên (1 byte, 2 byte hay 4 byte) được xếp vào gói 64 bít. Các thanh ghi XMM: hỗ trợ các thao tác số nguyên và số thực được xếp vào các gói 128 bít. Các vi xử lý thế hệ sau hỗ trợ IA-32 áp dụng các tính năng thực thi lệnh tiên tiến cho phép thực hiện được nhiều hơn 1 lệnh trong 1 chu trình lệnh như kỹ thuật đường ống, siêu vô hướng, hay siêu phân luồng. Các thế hệ Pentium đầu tiên sử dụng các vi kiến trúc siêu vô hướng cho phép thực hiện 3 lệnh trong một chu kỳ xung nhịp với các siêu đường ống 12 đoạn và cơ chế thực thi không theo trật tự hoặc vô hướng (out-of-order execution). Vi kiến trúc Netburst là một trong các vi kiến trúc điển hình được minh họa trên Hình 7-1. Vi kiến trúc Netburst tăng cường tính năng kiến trúc Pentium bằng việc tăng cường năng lực của đơn vị xử lý, năng cao hiệu năng của bộ đệm tích hợp, mở rộng giao tiếp bus. Các vi xử lý IA-32 thế hệ mới còn hỗ trợ cơ chế đa nhân (multi-core) bên cạnh kiến trúc siêu phân luồng cho phép chạy nhiều ứng dụng đồng thời. Việc kết hợp hai kiến trúc làm cho các chương trình ứng dụng có thể sử dụng 4 bộ vi xử lý lô-gíc trên 2 bô vi xử lý vật lý. Bên cạnh đó, bộ xử lý thế hệ mới hỗ trợ công nghệ ảo hóa cho phép nhiều hệ điều hành và ứng dụng chạy trên các máy ảo khác nhau cùng chia sẻ hệ thống phần cứng. Hình 7-1. Vi kiến trúc Netburst CHƯƠNG 7. GIỚI THIỆU MỘT SỐ VI XỬ LÍ TIÊN TIẾN 135 Kiến trúc IA-32 cung cấp các chức năng hỗ trợ hệ điều hành hay các phần mềm hệ thống. Với các thao tác vào/ra ở chế độ bảo vệ, các thao tác này bị hạn chế thông qua: Cờ đặc quyền IOPL (I/O privilege level) và trạng thái của quyền vào/ra trong phân đoạn trạng thái chương trình TSS (Task state segment). Cơ chế bảo vệ đoạn và trang bộ nhớ. Về mô hình bộ nhớ, các chương trình không truy nhập trực tiếp vào bộ nhớ vật lý. Thay vào đó, các chương trình có thể sử dụng các mô hình truy nhập: 1. Tuyến tính: Chương trình coi bộ nhớ như một chuỗi liên tiếp các byte. Đoạn mã, dữ liệu và ngăn xếp đều nằm trong không gian địa chỉ này. 2. Phân đoạn: Bộ nhớ được chia thành các không gian khác nhau được gọi là đoạn. Thông thường dữ liệu, đoạn mã, ngăn xếp sử dụng các đoạn khác nhau. Bộ xử lý hỗ trợ IA-32 có thể cung cấp 16383 đoạn với các kích cỡ khác nhau, kích cỡ lớn nhất của 1 đoạn là 4GB. 3. Địa chỉ thực: đây là mô hình bộ nhớ của 8086. 4. Phân trang và bộ nhớ ảo: khi này bộ nhớ chương trình được chia thành các trang ánh xạ vào bộ nhớ ảo. Sau đó, bộ nhớ ảo được ánh xạ vào bộ nhớ thực. Nếu hệ điều hành sử dụng phân trang, cơ chế ánh xạ hoàn toàn trong suốt đối với chương trình ứng dụng. 1.2 Các vi xử lý hỗ trợ IA-32 Với ưu thế của công nghệ và thiết kế vi kiến trúc mới, mỗi một thế hệ vi xử lý IA-32 mới đều vượt ngưỡng tốc độ (tần số hoạt động) và năng lực thực hiện của các vi xử lý thế hệ trước. Bảng dưới đây liệt kê các vi xử lý IA-32 thế hệ đầu không có bộ đệm tích hợp trong vi xử lý (GP-thanh ghi dùng chung; FPU-thanh ghi dấu phẩy động). Bảng 7-1. Vi xử lý hỗ trợ IA-32 thế hệ đầu Vi xử lý Năm sản xuất Tần số (MHz) Số thanh ghi Bus dữ liệu mở rộng Bộ nhớ tối đa Bộ đệm 80386DX 1985 20 32GP 32 4GB Intel 486DX 1989 25 32GP 80 FPU 32 4GB 8KB L1 Pentium 1993 60 32GP 80 FPU 64 4GB 16KB L1 Pentium Pro 1995 200 32GP 80 FPU 64 64GB 16KB L1 256-512KB L2 Pentium II 1997 266 32GP 80 FPU 64 MMX 64 64GB 32KB L1 256-512KB L2 CHƯƠNG 7. GIỚI THIỆU MỘT SỐ VI XỬ LÍ TIÊN TIẾN 136 Pentium III 1999 500 32GP 80 FPU 64 MMX 128 XMM 64 64GB 32KB L1 512KB L2 Bảng 7-2. Vi xử lý IA-32 thế hệ sau Vi xử lý Năm sản xuất Vi kiến trúc Tần số (GHz) Số thanh ghi Băng thông bus hệ thống Bộ nhớ tối đa Bộ đệm Pentium 4 2000 Netburst 1, 5 32 GP 80 FPU 64 MMX 128 XMM 3, 2GB/s 64GB 8KB L1 256KB L2 Pentium 4 2002 Netburst, Siêu phân luồng 3, 06 32 GP 80 FPU 64 MMX 128 XMM 4, 2GB/s 64GB 8KB L1 256KB L2 Pentium M 2003 Pentium M 1, 6 32 GP 80 FPU 64 MMX 128 XMM 3, 2GB/s 64GB 64KB L1 1MB L2 Pentium 4 Extreme 2005 Netburst, Siêu phân luồng 3, 73 32 GP 80 FPU 64 MMX 128 XMM 8, 5GB/s 64GB 16KB L1 2MB L2 Core Duo 2006 Pentium M, Lõi kép 2, 16 32 GP 80 FPU 64 MMX 128 XMM 5, 3 GB/s 4GB 64KB L1 2MB L2 Atom Z5xx 2008 Atom, Ảo hóa 1, 86 32 GP 80 FPU 64 MMX 128 XMM 4, 2GB/s 4GB 56KB L1 512KB L2 2. CÁC VI XỬ LÍ TIÊN TIẾN DỰA TRÊN KIẾN TRÚC INTEL IA-64 Kiến trúc Intel IA-64 bổ sung không gian địa chỉ chương trình 64 bít hỗ trợ không gian nhớ vật lý tới 40 bít và chế độ IA-32e so với kiến trúc IA-32 trước đó. Kiến trúc IA-64 đảm bảo tính tương thích ngược cho phép chạy các chương trình viết cho kiến trúc IA-32. Các chế độ mới của IA-64 bao gồm: Chế độ tương thích: cho phép chạy các ứng dụng 16 và 32 bít mà không phải biên dịch lại. Chế độ này tương tự như chế độ bảo vệ trong IA-32. Các ứng dụng chỉ truy nhập được 4GB đầu trong không gian nhớ tuyến tính. Tuy nhiên, ứng dụng có thể sử dụng không gian nhớ lớn hơn với chế độ mở rộng địa chỉ vật lý. CHƯƠNG 7. GIỚI THIỆU MỘT SỐ VI XỬ LÍ TIÊN TIẾN 137 Chế độ 64 bít. Cho phép chương trình truy nhập không gian nhớ tuyến tính 64 bít. Chế độ này mở rộng số lượng các thanh ghi dùng chung và thanh ghi XMM từ 8 lên 16. Các thanh ghi dùng chung có kích cỡ 64 bít. Chế độ 64 được kích hoạt trên cơ sở đoạn mã. Kích cỡ mặc định cho địa chỉ là 64 bít còn toán hạng 32 bít. Kích cỡ của toán hạng có thể thay đổi theo từng lệnh sử dụng tiền tố REX. Điều này giúp cho các câu lệnh cũ có thể chuyển sang chế độ 64 bít thanh ghi và địa chỉ. Bảng 7-3. Vi xử lý hỗ trợ IA-64 Vi xử lý Năm sản xuất Vi kiến trúc Tần số (GHz) Số thanh ghi Băng thông bus hệ thống Bộ nhớ tối đa Bộ đệm Xeon 2004 Netburst, Siêu phân luồng, IA-64 3, 6 32, 64 GP 80 FPU 64 MMX 128 XMM 6, 4GB/s 64GB 16KB L1 1MB L2 Xeon 2005 Netburst, Siêu phân luồng, IA-64 3, 03 32, 64 GP 80 FPU 64 MMX 128 XMM 5, 3GB/s 1024GB 16KB L1 1MB L2 8MB L3 Pentium 4 Extreme 2005 Netburst, Siêu phân luồng, IA-64 3, 73 32 GP 80 FPU 64 MMX 128 XMM 8, 5GB/s 64GB 16KB L1 2MB L2 Dual- Core Xeon 2005 Netburst, Siêu phân luồng, Đa nhân, IA-64 3 32, 64 GP 80 FPU 64 MMX 128 XMM 6, 4GB/s 64GB 16KB L1 2MB L2 (Tổng 4MB) Pentium 4 672 2005 Netburst, Siêu phân luồng, IA-64, Ảo hóa, Đa nhân 3, 8 32, 64 GP 80 FPU 64 MMX 128 XMM 6, 4GB/s 64GB 16KB L1 2MB L2 Core 2 Extreme X6800 2006 Netburst, Siêu phân luồng, IA-64, Ảo hóa, Đa nhân 2, 93 32, 64 GP 80 FPU 64 MMX 128 XMM 8, 5GB/s 64GB 64KB L1 4MB L2 Xeon 7140 2006 Netburst, Siêu phân 3, 40 32, 64 GP 80 FPU 12, 8 GB/s 64GB 64KB L1 1MB L2 CHƯƠNG 7. GIỚI THIỆU MỘT SỐ VI XỬ LÍ TIÊN TIẾN 138 luồng, IA-64, Ảo hóa, Đa nhân 64 MMX 128 XMM (tổng 2MB) 16MB L3 Xeon 5472 2007 Netburst, Siêu phân luồng, IA-64, Ảo hóa, Đa nhân (4 nhân) 3, 00 32, 64 GP 80 FPU 64 MMX 128 XMM 12, 8 GB/s 256GB 64KB L1 6MB L2 (Tổng 12MB) Atom 2008 Atom, IA-64, Ảo hóa, Đa nhân (4 nhân) 1, 60 32, 64 GP 80 FPU 64 MMX 128 XMM 12, 8 GB/s 64GB 56KB L1 512KB L2 (Tổng 1MB) Core i7 2008 Netburst, Siêu phân luồng, IA-64, Ảo hóa, Đa nhân (4 nhân) 3, 20 32, 64 GP 80 FPU 64 MMX 128 XMM 6, 4 GT/s 64GB 64KB L1 256KB L2 8MB L3 3. CÁC VI XỬ LÍ TIÊN TIẾN CỦA SUN MICROSYSTEMS Sun Microsystems hỗ trợ thiết kế bộ xử lý có thể mở rộng SPARC (Scalable Processor Architecture). Kiến trúc này chịu ảnh hưởng của máy tính Berkeley RISC I. Tập lệnh và tổ chức các thanh ghi của bộ xử lý SPARC rất giống với Berkeley RISC. SPARC cho phép triển khai từ các ứng dụng nhúng cho tới các máy chủ rất lớn, tất cả đều dùng chung một tập lệnh căn bản. Hiện nay, bộ xử lý SPARC thường được sử dụng rộng rãi trong môi trường máy chủ, trạm làm việc sử dụng hệ điều hành SUN, Unix và Linux. Bộ xử lý SPARC thường có tới 128 thanh ghi dùng chung. Tại bất cứ thời điểm nào, phần mềm có thể sử dụng tức thì 32 thanh ghi bao gồm 8 thanh ghi toàn cục, 24 thanh ghi ngăn xếp. Các thanh ghi ngăn xếp có thể tạo thành cửa sổ thanh ghi (register window) tối đa 32 cửa sổ cho phép tối ưu các thao tác gọi hàm và trở về. Mỗi cửa sổ có 8 thanh ghi cục bộ và dùng chung 8 thanh ghi với cửa sổ kề. Các thanh ghi chia sẻ được dùng để truyền các tham số và giá trị trả về cho các hàm còn thanh ghi cục bộ dùng để lưu các giá trị cục bộ giữa các lời gọi hàm. Hầu hết các lệnh xử lý của SPARC chỉ sử dụng các toán hạng thanh ghi. Các lệnh nạp và lưu chuyên dùng để trao đổi dữ liệu giữa các thanh ghi và bộ nhớ. Ngoài chế dộ địa chỉ thanh ghi, SPARC chỉ sử dụng chế độ địa chỉ dịch chuyển. Trong chế độ này, địa chỉ hiệu dụng của toán hạng được dịch chuyển 1 đoạn tương ứng với giá trị của thanh ghi. Để thực hiện câu lệnh nạp hoặc ghi, quá trình thực hiện lệnh sẽ cần thêm 1 giai đoạn để tính địa chỉ ô nhớ. CHƯƠNG 7. GIỚI THIỆU MỘT SỐ VI XỬ LÍ TIÊN TIẾN 139 Vi xử lý hỗ trợ SPARC 32 bít phiên bản 8 cho phép sử dụng 16 thanh ghi dấu phẩy động với độ chính xác kép, hoặc 32 thanh ghi với độ chính xác đơn. Các cặp chẵn-lẻ của các thanh ghi độ chính xác kép có thể kết hợp với nhau để nâng độ chính xác lên gấp đôi mức 4. SPARC 64 bít phiên bản 9, xuất hiện vào năm 1993, có thêm 16 thanh ghi độ chính xác kép nhưng các thanh ghi mới này không tách thành các thanh ghi có độ chính xác đơn được. Bảng dưới đây liệt kê một số tính năng của các vi xử lý sử dụng SPARC. Bảng 7-4. Tính năng một số vi xử lý SPARC Tên Tần số MHz Năm sản xuất Số luồng x Số nhân Số chân tín hiệu Đệm dữ liệu L1 (k) Đệm lệnh L1 (k) Đệm L2 (k) UltraSPARC IIs (Blackbird) 250–400 1997 1×1 521 16 16 1024 – 4096 UltraSPARC IIs (Sapphire-Black) 360–480 1999 1×1 521 16 16 1024– 8192 UltraSPARC IIi (Sabre) 270–360 1997 1×1 587 16 16 256– 2048 UltraSPARC IIi (Sapphire-Red) 333–480 1998 1×1 587 16 16 2048 UltraSPARC IIe (Hummingbird) 400–500 1999 1×1 370 16 16 256 UltraSPARC IIi (IIe+) (Phantom) 550–650 2000 1×1 370 16 16 512 UltraSPARC III (Cheetah) 600 2001 1×1 1368 64 32 8192 UltraSPARC III Cu (Cheetah+) 1002– 1200 2001 1×1 1368 64 32 8192 UltraSPARC IIIi (Jalapeño) 1064– 1593 2003 1×1 959 64 32 1024 UltraSPARC IV (Jaguar) 1050– 1350 2004 1×2 1368 64 32 16384 UltraSPARC IV+ (Panther) 1500– 2100 2005 1×2 1368 64 64 2048 CHƯƠNG 7. GIỚI THIỆU MỘT SỐ VI XỬ LÍ TIÊN TIẾN 140 UltraSPARC T1 (Niagara) 1000– 1400 2005 4×8 1933 8 16 3072 UltraSPARC T2 (Niagara 2) 1000– 1600 2007 8×8 1831 8 16 4096 UltraSPARC T2 Plus (Victoria Falls) 1200– 1600 2008 8×8 1831 8 16 4096 TÀI LIỆU THAM KHẢO 141 TÀI LIỆU THAM KHẢO 1. Crisp J. Introduction to microprocessors and microcontrollers, Newnes 2004. 2. David Calcutt, Fred Cowan,Hassan Parchizadeh, 8051 Microcontrollers An Applications-Based Introduction, Newnes, 2004. 3. Douglas V. Hall. Microprocessor and Interfacing- programming and hardware, 2nd edition. McGraw Hill. 1997. 4. Hari BalaKrishnan & Samel Madden. The lecture notes on Computer Systems Engineering, Open Courses Ware. Massachusets Institute of Technology. 5. Hồ Khánh Lâm, Kỹ thuật vi xử lý, NXB Bưu điện, 2005. 6. Intel Corp. Intel® 64 and IA-32 Architectures Software Developer’s Manual. 7. Rafiquzzaman M. Microprocessor theory and applications with 68000/68020 and Pentium, John Wiley&Sons 2008. 8. Văn Thế Minh. Kỹ thuật vi xử lý. NXB Giáo dục 1999.
File đính kèm:
- bai_giang_ky_thuat_vi_xu_ly_pham_hoang_duy.pdf