Ky.thuat.vi.xu.ly uds
Upcoming SlideShare
Loading in...5
×
 

Ky.thuat.vi.xu.ly uds

on

  • 1,389 views

 

Statistics

Views

Total Views
1,389
Views on SlideShare
1,389
Embed Views
0

Actions

Likes
1
Downloads
55
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Ky.thuat.vi.xu.ly uds Ky.thuat.vi.xu.ly uds Document Transcript

  • Kỹ ậ vi xửlý thu t MicroprocessorsGiả viên: Phạ Ngọ Nam ng m c
  • © DHBK 2005 2/Chapter1 Your instructor• Bộmôn kỹthuậ đ n tửtin họ t iệ c  Office: C9-401  Email: pnnam-fet@mail.hut.edu.vn• Research:  FPGA, PSoC, hệnhúng  Trí tuệnhân tạo• Education:  K37 đ n tử HBK Hà nộ (1997) iệ -Đ i  Master vềtrí tuệnhân tạ 1999, Đ i họ K.U. Leuven, o ạ c vư ng quố Bỉ ơ c  Đềtài: Nhậ dạ chữviế tay n ng t  Tiế sỹkỹthuậ chuyên ngành đ n tử n t iệ -tin họ 9/ 2004, Đ i c, ạ họ K.U. Leuven, Vư ng Quố Bỉ c ơ c  Đềtài: quả lý chấ lư ng dị vụtrong các ứ dụ đ n t ợ ch ng ng a phư ng tiệ tiên tiế ơ n n
  • © DHBK 2005 3/Chapter1 Nộ dung môn họ i c1. Giớ thiệ chung vềhệvi xửlý i u2. Bộvi xửlý Intel 8088/80863. Lậ trình hợ ngữcho 8086 p p4. Tổchứ vào ra dữliệ c u5. Ngắ và xửlý ngắ t t6. Truy cậ bộnhớtrự tiế DMA p c p7. Các bộvi xửlý trên thự tế c
  • © DHBK 2005 4/Chapter1 Tài liệ tham khả u o• Slides• Vă ThếMinh, Kỹthuậ vi xửlý, Nhà xuấ bả giáo n t t n dụ 1997. c,• Barry B. Brey, The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, 80486, Pentium and Pentium Pro Processor: Architecture, Programming, and Interfacing, Fourth Edition, Prentice Hall, 1997.• Quách Tuấ Ngọ và cộ sự Ngôn ngữlậ trình n c ng , p Assembly và máy vi tính IBM-PC, 2 tậ Nhà xuấ p, t bả giáo dụ 1995. n c,• Cả ơ giáo sưRudy Lauwereins đ cho phép sử m n ã dụ slides củ ông ng a
  • © DHBK 2005 5/Chapter1 Mụ đch củ môn họ c í a c• Nắ đ ợ cấ trúc, nguyên lý hoạ đ ng củ bộvi m ưc u t ộ a xửlý và hệvi xửlý• Có khảnă lậ trình bằ hợ ngữcho vi xửlý ng p ng p• Có khảnă lự chọ vi xửlý thích hợ cho các ng a n p ứ dụ cụthể ng ng• Nắ đ ợ các bộvi xửlý trên thự tế m ưc c
  • © DHBK 2005 6/Chapter1 Bài tậ lớ và thi p n• Bài tậ lớ thiế kếmộ ứ dụ trên vi đ u khiể p n: t t ng ng iề n: 20% tổ sốđ m ng iể Làm theo nhóm 2-6 sinh viên Nộ danh sách các nhóm vào 3/1 p Các nhóm trình bày ý tư ng 17/1 ở• Kiể tra: 10% m 3 bài kiể tra không báo trư c m ớ dựđ ủít nhấ 2 bài và kế quảcủ 2 bài > 5: 1 đ m t t a iể thiế 2 bài trởlên: không đ ợ thi lầ 1 u ưc n• Thi họ kỳ c : 1 câu lý thuyế 2 câu bài tậ (lậ trình và thiế kế t, p p t ) 70% tổ sốđ m ng iể
  • Chư ng 1© DHBK 2005 7/Chapter1 ơ Giớ thiệ chung vềhệvi xửlý i u• Lị sửphát triể củ các bộvi xửlý và máy tính ch n a• Phân loạ vi xửlý i• Các hệđ m dùng trong máy tính ( nhắ lạ ế c i)• Giớ thiệ sơlư c vềcấ trúc và hoạ đ ng củ hệvi i u ợ u t ộ a xửlý
  • Chư ng 1© DHBK 2005 8/Chapter1 ơ Giớ thiệ chung vềhệvi xửlý i u• Lị sửphát triể củ các bộvi xửlý và máy tính ch n a Thếhệ-1: The early days (…-1642) Thếhệ0: Mechanical (1642-1945) Thếhệ1: Vacuum tubes (1945-1955) Thếhệ2: Discrete transistors (1955-1965) Thếhệ3: Integrated circuits (1965-1980) Thếhệ4: VLSI (1980-?)• Phân loạ vi xửlý i• Các hệđ m dùng trong máy tính ( nhắ lạ ế c i)• Giớ thiệ sơlư c vềcấ trúc và hoạ đ ng củ hệvi i u ợ u t ộ a xửlý
  • Chư ng 1© DHBK 2005 9/Chapter1 ơ Giớ thiệ chung vềhệvi xửlý i u• Lị sửphát triể củ các bộvi xửlý và máy tính ch n a Thếhệ-1: The early days (…-1642) Thếhệ0: Mechanical (1642-1945) Thếhệ1: Vacuum tubes (1945-1955) Thếhệ2: Discrete transistors (1955-1965) Thếhệ3: Integrated circuits (1965-1980) Thếhệ4: VLSI (1980-?)• Phân loạ vi xửlý i• Các hệđ m dùng trong máy tính ( nhắ lạ ế c i)• Giớ thiệ sơlư c vềcấ trúc và hoạ đ ng củ hệvi i u ợ u t ộ a xửlý
  • Thếhệ-1: The early days (…-1642)© DHBK 2005 10/Chapter1• Bàn tính, abacus, đ đ ợ sửdụ đ ã ưc ng ểtính toán. Khái niệ vềgiá trị m theo vị đ đ ợ xửdụ trí ã ư c ng
  • Thếhệ-1: The early days (…-1642)© DHBK 2005 11/Chapter1 • Thếkỷ12: Muhammad ibn Musa AlKhowarizmi đ a ư ra khái niệ vềgiả m i thuậ algorithm t
  • Thếhệ-1: The early days (…-1642)© DHBK 2005 12/Chapter1• Codex Madrid - Leonardo Da Vinci (1500)  Vẽmộ cái máy tính cơkhí t
  • Chư ng 1© DHBK 2005 13/Chapter1 ơ Giớ thiệ chung vềhệvi xửlý i u• Lị sửphát triể củ các bộvi xửlý và máy tính ch n a Thếhệ-1: The early days (…-1642) Thếhệ0: Mechanical (1642-1945) Thếhệ1: Vacuum tubes (1945-1955) Thếhệ2: Discrete transistors (1955-1965) Thếhệ3: Integrated circuits (1965-1980) Thếhệ4: VLSI (1980-?)• Phân loạ vi xửlý i• Các hệđ m dùng trong máy tính ( nhắ lạ ế c i)• Giớ thiệ sơlư c vềcấ trúc và hoạ đ ng củ hệvi i u ợ u t ộ a xửlý
  • © DHBK 2005 14/Chapter1 Thếhệ0: Mechanical (1642-1945)• Blaise Pascal, con trai củ mộ ngư i thu thuế đ a t ờ , ã chếtạ mộ máy cộ có nhớvào nă 1642 o t ng m
  • © DHBK 2005 15/Chapter1 Thếhệ0: Mechanical (1642-1945)• Nă 1801, Joseph-Marie Jacquard đ phát minh ra m ã máy dệ tựđ ng sửdụ bìa đ c lỗđ iề khiể hoạ t ộ ng ụ ểđ u n tiế dệ trên vả t t i• Bìa đ c lỗlư trữchư ng trình: máy đ nă đ u ụ u ơ a ng ầ tiên
  • © DHBK 2005 16/Chapter1 Thếhệ0: Mechanical (1642-1945) • 1822, Charles Babbage nhậ ra rằ các bả n ng ng tính dùng trong hàng hả có quá nhiề lỗ dẫ i u i n tớ việ rấ nhiêu tàu bị i c t mấ tích t • Ông đ xin chính phủ ã Anh hỗtrợđ ểnghiên cứ vềmáy tính u
  • © DHBK 2005 17/Chapter1 Thếhệ0: Mechanical (1642-1945)
  • © DHBK 2005 18/Chapter1 Thếhệ0: Mechanical (1642-1945)• Babbage đ thiế kếmộ cái máy vi phân Difference Engine đ ã t t ể thay thếtoàn bộbả tính: máy thự hiệ mộ ứ dụ cụthể ng c n t ng ng đ u tiên (application specific hard-coded machine) ầ
  • © DHBK 2005 19/Chapter1 Thếhệ0: Mechanical (1642-1945)• Ada Augusta King, trở thành lậ trình viên đ u p ầ tiên vào nă 1842 khi m cô viế chư ng trình cho t ơ Analytical Engine, thiết bị thứ2 củ Babbage a
  • © DHBK 2005 20/Chapter1 Thếhệ0: Mechanical (1642-1945)• Herman Hollerith, ngừ i Mỹ thiế kếmộ máy tính ờ , t t đểxửlý dữliệ vềdân sốMỹ1890 u• Ông thành lậ công ty, Hollerith Tabulating p Company, sau đ y là Calculating-Tabulating- ấ Recording (C-T-R) company vào nă 1914 và sau m này đ ợ đ i tên là IBM (International Business ưc ổ Machine) vào nă 1924. m
  • © DHBK 2005 21/Chapter1 Thếhệ0: Mechanical (1642-1945)• Konrad Zuse, Berlin, Đ c, phát triể vào nă 1935 máy ứ n m tính Z-1 sửdụ rơle và sốnhị ng phân• Chu kỳlệnh: 6 giây (0.17 Hz)
  • © DHBK 2005 22/Chapter1 Thếhệ0: Mechanical (1642-1945)• Máy tính cơđ n tựđ ng lớ đ nă iệ ộ n a ng đ u tiên là ầ máy Harvard Mark I ( IBM Automatic Sequence Control Calculator ), phát minh bở Howard Aiken vào cuố 1930 i i• ASCC không phả là máy tính có chư ng trình lư trữ i ơ u sằ mà các lệ đ ợ ghi vào các bă giấ n nh ư c ng y.
  • © DHBK 2005 23/Chapter1 Thếhệ0: Mechanical (1642-1945)• Grace Murray Hopper found the first computer bug beaten to death in the jaws of a relay. She glued it into the logbook of the computer and thereafter when the machine stops (frequently) she told Howard Aiken that they are "debugging" the computer. Numbered pages for USA patents Lab book!!
  • Chư ng 1© DHBK 2005 24/Chapter1 ơ Giớ thiệ chung vềhệvi xửlý i u• Lị sửphát triể củ các bộvi xửlý và máy tính ch n a Thếhệ-1: The early days (…-1642) Thếhệ0: Mechanical (1642-1945) Thếhệ1: Vacuum tubes (1945-1955) Thếhệ2: Discrete transistors (1955-1965) Thếhệ3: Integrated circuits (1965-1980) Thếhệ4: VLSI (1980-?)• Phân loạ vi xửlý i• Các hệđ m dùng trong máy tính ( nhắ lạ ế c i)• Giớ thiệ sơlư c vềcấ trúc và hoạ đ ng củ hệvi i u ợ u t ộ a xửlý
  • © DHBK 2005 25/Chapter1 Thếhệ1: Vacuum tubes (1945-1955) • Nă 1943, John m Mauchly và J. Presper Eckert bắ đ u nghiên t ầ cứ vềENIAC u
  • © DHBK 2005 26/Chapter1 Thếhệ1: Vacuum tubes (1945-1955)• 18000 vacuum tubes, 1500 rơle, 30 tấ 140 kW, 20 thanh ghi n, 10 chữsốthậ phân, 100 nghìn phép tính/ giây p• “Trong tư ng lai máy tính sẽnặ tố đ là 1.5 tấ (Popular ơ ng i a n” Mechanics, 1949)
  • © DHBK 2005 27/Chapter1 Thếhệ1: Vacuum tubes (1945-1955)• Lậ trình thông qua 6000 công tắ nhiề nấ và hàng tấ d ây p c u c n
  • © DHBK 2005 28/Chapter1 Thếhệ1: Vacuum tubes (1945-1955)• Nă 1946, John von Neumann phát minh ra máy m tính có chư ng trình lư trong bộnhớ ơ u• Máy tính củ ông gồ có mộ đ n vị iề khiể mộ a m t ơ đ u n, t ALU, mộ bộnhớchư ng trình và dữliệ và sửdụ t ơ u ng sốnhị phân thay vì sốthậ phân. p• Máy tính ngày nay đ u có cấ trúc von Neumann ề u• ông đ t nề móng cho hiệ tư ng “von Neumann ặ n n ợ bottleneck”, sựkhông tư ng thích giữ tố đ ơ a c ộcủ a bộnhớvớ đ n vị i ơ xửlý
  • © DHBK 2005 29/Chapter1 Thếhệ1: Vacuum tubes (1945-1955)• Nă 1948, máy tính có chư ng trình lư trữtrong bộnhớđ u m ơ u ầ tiên đ ợ vậ hành tạ trư ng đ i họ Manchester: ưc n i ờ ạ c Manchester Mark I
  • © DHBK 2005 30/Chapter1 Thếhệ1: Vacuum tubes (1945-1955)• Nă 1951, máy tính Whirlwind lầ đ u tiên sửdụ m n ầ ng bộnhớlõi từ(magnetic core memories). Gầ đ n ây nguyên lý này đ đ ợ sửdụ lạ đ ã ưc ng i ểchếtạ MRAM o ởdạ tích hợ ng p.
  • © DHBK 2005 31/Chapter1 Thếhệ1: Vacuum tubes (1945-1955)• Mộ magnetic core lư trữ256 bits t u
  • © DHBK 2005 32/Chapter1 Thếhệ1: Vacuum tubes (1945-1955)• John von Neumann nă 1952 vớ chiế máy tính mớ củ ông m i c i a
  • © DHBK 2005 33/Chapter1 Thếhệ1: Vacuum tubes (1945-1955)• Nă 1954, John Backus, IBM phát minh ra m FORTRAN
  • Chư ng 1© DHBK 2005 34/Chapter1 ơ Giớ thiệ chung vềhệvi xửlý i u• Lị sửphát triể củ các bộvi xửlý và máy tính ch n a Thếhệ-1: The early days (…-1642) Thếhệ0: Mechanical (1642-1945) Thếhệ1: Vacuum tubes (1945-1955) Thếhệ2: Discrete transistors (1955-1965) Thếhệ3: Integrated circuits (1965-1980) Thếhệ4: VLSI (1980-?)• Phân loạ vi xửlý i• Các hệđ m dùng trong máy tính ( nhắ lạ ế c i)• Giớ thiệ sơlư c vềcấ trúc và hoạ đ ng củ hệvi i u ợ u t ộ a xửlý
  • 35/Chapter1 Th ếhệ2: Discrete transistors (1955-1965)© DHBK 2005• Nă 1947, William Shockley, John Bardeen, and m Walter Brattain phát minh ra transistor
  • 36/Chapter1 Th ếhệ2: Discrete transistors (1955-1965)© DHBK 2005• Nă 1955, IBM công bốIBM704, máy tính m mainframe sửdụ tranzistor ng• Đ là máy tính vớ phép toán dấ phấ đ ng đ u ây i u y ộ ầ tiên (5 kFlops, clock: 300 kHz)
  • Chư ng 1© DHBK 2005 37/Chapter1 ơ Giớ thiệ chung vềhệvi xửlý i u• Lị sửphát triể củ các bộvi xửlý và máy tính ch n a Thếhệ-1: The early days (…-1642) Thếhệ0: Mechanical (1642-1945) Thếhệ1: Vacuum tubes (1945-1955) Thếhệ2: Discrete transistors (1955-1965) Thếhệ3: Integrated circuits (1965-1980) Thếhệ4: VLSI (1980-?)• Phân loạ vi xửlý i• Các hệđ m dùng trong máy tính ( nhắ lạ ế c i)• Giớ thiệ sơlư c vềcấ trúc và hoạ đ ng củ hệvi i u ợ u t ộ a xửlý
  • 38/Chapter1 Thếhệ3: Integrated circuits (1965-1980)© DHBK 2005• Nă 1958, Jack St. Clair Kilby of Texas m Instruments (Nobel prize physics, 2000) đ a ra và ư chứ minh ý tư ng tích hợ 1 transistor vớ các ng ở p i đ n trởvà tụđ n trên mộ chip bán dẫ vớ kích iệ iệ t n i thư c 1 nử cái kẹ giấ Đ chính là IC. ớ a p y. ây
  • 39/Chapter1 Thếhệ3: Integrated circuits (1965-1980)© DHBK 2005• 7/4/1964 IBM đ a ra System/360, họmáy tính tư ng ư ơ thích đ u tiên củ IBM ầ a
  • 40/Chapter1 Thếhệ3: Integrated circuits (1965-1980)© DHBK 2005• Nă 1965, Digital m Equipment Corporation, đ a ư ra chiế máy tính mini c đ u tiên DP-8 ầ
  • © DHBK 2005 41/Chapter1 Thếhệ3: Integrated circuits (1965-1980)• Nă 1971, Ted Hoff chếtạ Intel 4004 theo đ n đ t hàng củ mộ m o ơ ặ a t công ty Nhậ bả đ t n ểtạ chip sả xuấ calculator. Đ là vi xửlý đ u o n t ây ầ tiên vớ 2400 transistor (microprocessor, processor-on-a-chip). i• 4 bít dữliệ 12 bit đa chỉ u, ị
  • © DHBK 2005 42/Chapter1 Thếhệ3: Integrated circuits (1965-1980)• 1973-1974, Edward Roberts, William Yates and Jim Bybee chếtạ MITS Altair 8800, máy tính cá nhân đ u tiên o ầ• Giá $375, 256 bytes of memory, không keyboard, không màn hình và không bộnhớngoài• Sau đ , Bill Gate và Paul Allen viế chư ng trình dị ó t ơ ch BASIC cho Altair
  • Chư ng 1© DHBK 2005 43/Chapter1 ơ Giớ thiệ chung vềhệvi xửlý i u• Lị sửphát triể củ các bộvi xửlý và máy tính ch n a Thếhệ-1: The early days (…-1642) Thếhệ0: Mechanical (1642-1945) Thếhệ1: Vacuum tubes (1945-1955) Thếhệ2: Discrete transistors (1955-1965) Thếhệ3: Integrated circuits (1965-1980) Thếhệ4: VLSI (1980-?)• Phân loạ vi xửlý i• Các hệđ m dùng trong máy tính ( nhắ lạ ế c i)• Giớ thiệ sơlư c vềcấ trúc và hoạ đ ng củ hệvi i u ợ u t ộ a xửlý
  • © DHBK 2005 44/Chapter1 Thếhệ4: VLSI (1980-?) • Nă 1981, IBM bắ đ u vớ IBM "PC" sử m t ầ i dụ hệđ u hành DOS. ng iề
  • © DHBK 2005 45/Chapter1 Thếhệ4: VLSI (1980-?)• Nă 1984, Xerox PARC (Palo Alto Research Center) đ a ra m ư máy tính đểbàn Alto vớ giao diệ ngư i và máy hoàn toàn i n ờ mớ windows, biể tư ng, mouse i: u ợ Con chuộ đ u tiên t ầ
  • © DHBK 2005 46/Chapter1 Thếhệ4: VLSI (1980-?)• Nă 1986, siêu máy tính Cray-XMP vớ 4 bộxửlý đ đ t m i ã ạ tố đ c ộtính toán là 840 MFlops. Nó đ ợ làm mát bằ nư c ưc ng ớ
  • © DHBK 2005 47/Chapter1 Thếhệ4: VLSI (1980-?)• Tố đ c ộtính toán này đ đ t đ ợ vớ máy tính cá ã ạ ưc i nhân 1 vi xửlý, Pentium III, vào quý 1 nă 2000 m
  • Chư ng 1© DHBK 2005 48/Chapter1 ơ Giớ thiệ chung vềhệvi xửlý i u• Lị sửphát triể củ các bộvi xửlý và máy tính ch n a• Phân loạ vi xửlý i• Các hệđ m dùng trong máy tính ( nhắ lạ ế c i)• Giớ thiệ sơlư c vềcấ trúc và hoạ đ ng củ hệvi i u ợ u t ộ a xửlý
  • © DHBK 2005 49/Chapter1 Phân loạ vi xửlý i
  • © DHBK 2005 50/Chapter1 Phân loạ vi xửlý i• BMW > 100 processors• Trung bình 1 công dân Mỹ~ 75 processors *Intelligent Transportation *Cabin Air System (ITS) Quality *Lighting *Safety Systems *Engine Performance and Emission Control (Traction Control) *Suspension *Digital *Steering Controls Entertainment Car and *Gear Box * Radio Braking Control
  • © DHBK 2005 51/Chapter1 Phân loạ vi xửlý iPhân loạ theo giá thành: i Type Giá (USD) Example application Disposable system 1 Greeting cards Embedded system 10 Watches, cars, appliances Game computer 100 Home video games Personal computer 1K Desktop computer Server 10K Network server Collection of 100K Departmental workstations supercomputer Mainframe 1M Batch processing in bank Supercomputer 10M Weather forecasting
  • © DHBK 2005 52/Chapter1 Phân loạ vi xửlý i• Phân loạ theo chứ nă i c ng:  Vi xửlý đ nă (General Purpose Microprocessor) a ng  DSP (Digital Signal Processor)  Vi đ u khiể (Microcontroller) iề n  ASIP (Application Specific Integrated Processor)• Phân loạ theo tậ lệ i p nh:  CISC (complex Instruction Set computer): máy tính có tậ lệ phứ tạ p nh c p  nhiề lệ u nh  cấ trúc phứ tạ u c p  mỗ lệ i nh: có độdài khác nhau và thự hiệ trong 1 đ n chụ chu kỳ c n ế c xung nhịp  RISC (reduced instruction Set computer): máy tính có tậ lệ rút p nh gọn  ít lệnh  mỗ lệ có đ i nh ộdài cốđnh và thự hiệ trong 1 đ n 2 chu ký xung nhị ị c n ế p  cấ trúc vi xửlý đ n giả có nhiề thanh ghi u ơ n, u  tố đ c ộxung nhị lớ và tiêu thụnă lư ng thấ p n ng ợ p
  • Chư ng 1© DHBK 2005 53/Chapter1 ơ Giớ thiệ chung vềhệvi xửlý i u• Lị sửphát triể củ các bộvi xửlý và máy tính ch n a• Phân loạ vi xửlý i• Các hệđ m dùng trong máy tính ( nhắ lạ ế c i) Thậ phân, Nhị p phân, Hệ8, Hệ16 Cộng, trừ nhân, chia , Các sốâm Sốnguyên, sốthự BCD, ASCII c,• Giớ thiệ sơlư c vềcấ trúc và hoạ đ ng củ hệvi i u ợ u t ộ a xửlý
  • Chư ng 1© DHBK 2005 54/Chapter1 ơ Giớ thiệ chung vềhệvi xửlý i u• Lị sửphát triể củ các bộvi xửlý và máy tính ch n a• Phân loạ vi xửlý i• Các hệđ m dùng trong máy tính ( nhắ lạ ế c i) Thậ phân, Nhị p phân, Hệ8, Hệ16 Cộng, trừ nhân, chia , Các sốâm Sốnguyên, sốthự BCD, ASCII c,• Giớ thiệ sơlư c vềcấ trúc và hoạ đ ng củ hệvi i u ợ u t ộ a xửlý
  • © DHBK 2005 55/Chapter1 Hệthậ phân p• 1234,56710=  1•1000+2•100+3•10+4•1+5•0.1+6•0.01+7•0.001  1•103+2•102+3•101+4•100+5•10-1+6•10-2+7•10-3  r = cơsố(r = 10), d=digit (0 d 9), m = sốchữsốtrư c dấ phẩ ớ u y, n = sốchữsốsau dấ phẩ u y m1 D  i  d r i i n 
  • © DHBK 2005 56/Chapter1 Hệnhịphân• 1011,0112=  1•8+0•4+1•2+1•1+0•0.5+1•0.25+1•0.125  1•23+0•22+1•21+1•20+0•2-1+1•2-2+1•2-3  r = cơsố(r = 2), d=digit (0 d 1), m = sốchữsốtrư c dấ phẩ n ớ u y, = sốchữsốsau dấ phẩu y m 1 B  i  d 2 i i n 
  • © DHBK 2005 57/Chapter1 Hệ8 (Octal)• 7654,328=  7•512+6•64+5•8+4•1+3•0.125+2•0.015625  7•83+6•82+5•81+4•80+3•8-1+2•8-2  r = cơsố(r = 8), d=digit (0 d 7), m = sốchữsốtrư c dấ phẩ n ớ u y, = sốchữsốsau dấ phẩu y m1 O  i  d 8 i i n 
  • © DHBK 2005 58/Chapter1 Hệ16 (Hexadecimal)• FEDC,7616=  15•4096+14•256+13•16+12•1+7•1/16+6•1/256  15•163+14•162+13•161+12•160+7•16-1+6•16-2  r = cơsố(r = 16), d=digit (0 d F), m = sốchữsốtrư c dấ phẩ ớ u y, n = sốchữsốsau dấ phẩ u y m 1 H  i  d 16 i i n 
  • © DHBK 2005 59/Chapter1 Chuyể đ i giữ các hệđ m n ổ a ế• Chuyể từhệthậ phân sang nhị n p phân Quy tắ lấ sốcầ đ i chia cho 2 và ghi nhớphầ dư lấ c: y n ổ n , y thư ng chia tiế cho 2 và ghi nhớphầ dư Lặ lạ khi ơ p n . p i thư ng bằ 0. Đ o ngư c thứtựdãy các sốdưsẽđ ợ chứ ơ ng ả ợ ưc sốcủ hệnhị a phân cầ tìm n Ví dụ Đ i 34 sang hệnhị : ổ phân: 100010• Chyể từhệnhị n phân sang hệ16 và ngư c lạ ợ i 1011 0111B = B7H
  • Chư ng 1© DHBK 2005 60/Chapter1 ơ Giớ thiệ chung vềhệvi xửlý i u• Lị sửphát triể củ các bộvi xửlý và máy tính ch n a• Phân loạ vi xửlý i• Các hệđ m dùng trong máy tính ( nhắ lạ ế c i) Thậ phân, Nhị p phân, Hệ8, Hệ16 Cộng, trừ nhân, chia , Các sốâm Sốnguyên, sốthự BCD, ASCII c,• Giớ thiệ sơlư c vềcấ trúc và hoạ đ ng củ hệvi i u ợ u t ộ a xửlý
  • © DHBK 2005 61/Chapter1 Cộ nhị ng phân• Cộ thậ phân ng p Nhớ 0 1 0 x 8273 y 562 Tổng 8835• Cộ nhị ng phân Nhớ 0 0 1 1 1 1 1 x 10011011 y 1010111 Tổng 11110010
  • © DHBK 2005 62/Chapter1 Trừnhịphân x 11101 y 1111 Mư n ợ 1110 Hiệu 01110
  • © DHBK 2005 63/Chapter1 Nhân nhịphân• Nguyên tắ cộ và dị c: ng ch 1110 1101 1110 0000 1110 1110 10110110
  • © DHBK 2005 64/Chapter1 Chia nhịphân 10111010 1110 1110 1101 1001010 1110 10010 0000 10010 1110 100• Nguyên tắ trừvà dị c: ch
  • Chư ng 1© DHBK 2005 65/Chapter1 ơ Giớ thiệ chung vềhệvi xửlý i u• Lị sửphát triể củ các bộvi xửlý và máy tính ch n a• Phân loạ vi xửlý i• Các hệđ m dùng trong máy tính ( nhắ lạ ế c i) Thậ phân, Nhị p phân, Hệ8, Hệ16 Cộng, trừ nhân, chia , Các sốâm Sốnguyên, sốthự BCD, ASCII c,• Giớ thiệ sơlư c vềcấ trúc và hoạ đ ng củ hệvi i u ợ u t ộ a xửlý
  • Biể diễ bằ dấ và đ lớ u n ng u ộ n© DHBK 2005 66/Chapter1 (Sign-Magnitude)• Mộ sốcó dấ bao gồ 2 phầ dấ và đ t u m n: u ộlớn• Ví dụhệ10: +12310 (thông thư ng ‘123’) và -12310 ờ• Hệnhị phân: bít dấ là bít MSB; ‘0’ = dư ng, ‘1’ = âm u ơ• Ví dụ 011002 = +1210 và 111002 = -1210 :• Các sốcó dấ 8 bít sẽcó giá trị u từ-127 đ n +127 vớ ế i 2 số0: 1000 0000 (-0) và 0000 0000 (+0)
  • © DHBK 2005 67/Chapter1 Sốbù 2• Sốbù 1 (bù lô gic): đ o bit ả 1001 => 0110 0100 => 1011• Sốbù 2 (bù sốhọ sốbù 1 +1 c):• Ví dụ Tìm sốbù 2 củ 13 : a 13 = 0000 1101Sốbù 1 củ 13 =1111 0010 aCộ thêm 1: ng 1Sốbù 2 củ 13= 1111 0011 (tứ là -13) a c
  • © DHBK 2005 68/Chapter1 Sốbù 2• Ví dụ Tìm sốbù 2 củ 0 : a 0 = 0000 0000Sốbù 1 củ 0 =1111 1111 aCộ thêm 1: ng 1Sốbù 2 củ 0= 0000 0000 (tứ là -0) a c• Nhưvậ vớ sốbù 2, số0 đ ợ biể diễ 1 cách duy y i ưc u n nhất• Sốcó dấ 8 bít sẽcó giá trị u từ-128 đ n 127 ế
  • © DHBK 2005 69/Chapter1 Sốbù 2 Decimal Sốbù 2 Sign-magnitude -8 1000 - -7 1001 1111 -6 1010 1110 -5 1011 1101 -4 1100 1100 -3 1101 1011 -2 1110 1010 -1 1111 1001 0 0000 1000 & 0000 1 0001 0001 2 0010 0010 3 0011 0011 4 0100 0100 5 0101 0101 6 0110 0110 7 0111 0111
  • Chư ng 1© DHBK 2005 70/Chapter1 ơ Giớ thiệ chung vềhệvi xửlý i u• Lị sửphát triể củ các bộvi xửlý và máy tính ch n a• Phân loạ vi xửlý i• Các hệđ m dùng trong máy tính ( nhắ lạ ế c i) Thậ phân, Nhị p phân, Hệ8, Hệ16 Cộng, trừ nhân, chia , Các sốâm Sốnguyên, sốthự BCD, ASCII c,• Giớ thiệ sơlư c vềcấ trúc và hoạ đ ng củ hệvi i u ợ u t ộ a xửlý
  • © DHBK 2005 71/Chapter1 Sốnguyên (integer)• 8 bit unsigned: 0 đ n 255 ế signed : -128 đ n 127 ( bù hai) ế• 16 bit unsigned: 0 đ n 65535 (216-1) ế signed : -32768 (215) đ n 32767 (215 -1) ế• 32 bit unsigned: 0 đ n 232 -1 ế signed : -231 đ n 231-1 ế
  • © DHBK 2005 72/Chapter1 Little endian và big endian• Số1234 H đ ợ lư trữthếnào trong bộnhớ8 bit? ưc u FFFFH FFFFH ..... ..... 0101H 12H 0101H 34H 0100H 34H 0100H 12H ..... ..... 0000H 0000H little endian big endian Intel microprocessors Motorola microprocessors
  • Sốthự c© DHBK 2005 73/Chapter1 (real number, floating point number)• Ví dụ 1,234=1,234*100=0,1234*10 1=... :• 11,01 B= 1,101*21=0,1101*22=... mantissa exponent• Real number: (m, e) , e.g. (0.1101, 2) Single precision: 32 bit Double precision: 64 bit
  • Sốthự c© DHBK 2005 74/Chapter1 (real number, floating point number)• IEEE-754 format cho single-precision 31 30 23 22 0 S biased exponent e fraction f of normalized mantissa 1 sign bit: 0 dư ng, 1 âm ơ 8 bit biased exponent= exponent + 127 24 bit mantissa chuẩ hoá = 1 bit ẩ + 23 bit fraction n nMantissa chuẩ hoá: có giá trị a 1 và 2 : 1.f n giữ Ví dụ biể diễ 0.1011 dư i dạ IEEE-754 : u n ớ ng Sign bit s=0 chuẩ hoá mantissa: 0.1011=1.011*2-1 n Biased exponent: -1 + 127=126=01111110 IEEE format: 0 01111110 0110000000000000000000
  • Sốthự c© DHBK 2005 75/Chapter1 (real number, floating point number)• IEEE-754 format cho double-precision 63 62 52 51 0 S biased exponent e fraction f of normalized mantissa 1 sign bit: 0 dư ng, 1 âm ơ 11 bit biased exponent= exponent + 1023 53 bit mantissa chuẩ hoá = 1 bit ẩ + 52 bit fraction n n single precision: (-1)s x 2e-127 x (1.f)2 double precision: (-1)s x 2e-1023 x (1.f)2
  • Sốthự c© DHBK 2005 76/Chapter1 (real number, floating point number) Single Precision Double PrecisionMachine epsilon 2-23 or 1.192 x 10-7 2 -52 or 2.220 x 10-16Smallest positive 2 -126 or 1.175 x 10 -38 2 -1022 or 2.225 x 10 -308Largest positive (2- 2 -23) 2127 or 3.403 x 10 38 (2- 2 -52) 21023 or 1.798 x 10308Decimal Precision 6 significant digits 15 significant digits
  • © DHBK 2005 77/Chapter1 BCD• Binary Coded Decimal number BCD chuẩ (BCD gói, packed BCD): n 1 byte biể diễ 2 sốBCD u n Decimal BCD Ví dụ 25: 0010 0101 : digit 0 0000 1 0001 BCD không gói (unpacked BCD) : 2 0010 1 byte biể diễ 1 sốBCD u n 3 0011 ví dụ 25: 00000010 00000101 : 4 0100 5 0101 6 0110 7 0111 8 1000 9 1001
  • ASCII© DHBK 2005 78/Chapter1 • American Standard Code for Information Interchange (7-bit code) b3b2b1b0 000 001 010 011 100 101 110 111 0000 NUL DLE SP 0 @ P ‘ p 0001 SOH DC1 ! 1 A Q a q 0010 STX DC2 “ 2 B R b r 0011 ETX DC3 # 3 C S c s 0100 EOT DC4 $ 4 D T d t 0101 ENQ NAK % 5 E U e u 0110 ACK SYN & 6 F V f V 0111 BEL ETB ‘ 7 G W g w 1000 BS CAN ( 8 H X h x 1001 HT EM ) 9 I Y i y 1010 LF SUB * : J Z j z 1011 VT ESC + ; K [ k { 1100 FF FS , < L l | 1101 CR GS - = M ] m } 1110 SO RS . > N ^ n ~ 1111 SI US / ? O _ o DEL
  • Chư ng 1© DHBK 2005 79/Chapter1 ơ Giớ thiệ chung vềhệvi xửlý i u• Lị sửphát triể củ các bộvi xửlý và máy tính ch n a• Phân loạ vi xửlý i• Các hệđ m dùng trong máy tính ( nhắ lạ ế c i)• Giớ thiệ sơlư c vềcấ trúc và hoạ đ ng củ hệvi i u ợ u t ộ a xửlý Hệvi xửlý
  • Chư ng 1© DHBK 2005 80/Chapter1 ơ Giớ thiệ chung vềhệvi xửlý i u• Lị sửphát triể củ các bộvi xửlý và máy tính ch n a• Phân loạ vi xửlý i• Các hệđ m dùng trong máy tính ( nhắ lạ ế c i)• Giớ thiệ sơlư c vềcấ trúc và hoạ đ ng củ hệvi i u ợ u t ộ a xửlý Hệvi xửlý
  • © DHBK 2005 81/Chapter1 Hệvi xửlý Bus dữliệu Bus đ u khiể iề n Phố ghép i Phố ghép i Bộnhớ Bộnhớ Vi xửlý Vi xửlý Thiế bị t vào/ra vào/ra Memory Memory CPU CPU vào/ra (I/O) (I/O) Màn hình Bus đa chỉ ị Máy in Bàn phím DRAM Intel 80X86 ISA Con chuộ t SRAM Motorola 680X EISA Ổ cứng ROM PowerPC PCI Ổ mềm EEPROM ... VESA CD-ROM Flash SCSI DVD USB ... ...
  • © DHBK 2005 82/Chapter1 Hệvi xửlý• CPU Đ n vị ơ sốhọ và logic c Đ c mã lệ ọ nh (Arithmetic Logical Unit) Thự hiệ các phép toán sốhọ c n c  Cộng, trừ nhân chia , Giả mã lệ i nh Thự hiệ các phép toán logic c n  And, or, compare.. Đ n vị iề khiể (Control Unit) ơ đ u n Thự hiệ lệ c n nh Các thanh ghi (Registers) Lư trữdữliệ và trạ thái củ quá trình thự hiệ lệ u u ng a c n nh
  • © DHBK 2005 83/Chapter1 Hệvi xửlý• Memory ROM: không bị t dữliệ chứ dữliệ đ u khiể hệthố mấ u, a u iề n ng lúc khở đ ng i ộ RAM: mấ dữliệ khi mấ nguồ chứ chư ng trình và dữ t u t n, a ơ liệ trong quá trình hoạ đ ng củ hệthố u t ộ a ng• Bus dữliệu 8, 16, 32, 64 bit tùy thuộ vào vi xửlý c• Bus đa chỉ ị : 16, 20, 24, 32, 36 bit sốô nhớcó thểđ ánh đa chỉ2N ị : Ví dụ 8088/8086 có 20 đ ờ đa chỉ quả lý đ ợ : ư ng ị => n ưc 220 bytes=1Mbytes
  • © DHBK 2005 84/Chapter1 Hệvi xửlýNhà sả xuấ n t Tên vi xửlý Bus Bus Khảnă đa ng ị dữliệu đa chỉ ị chỉ Intel 8088 8 20 1M 8086 16 20 1M 80186 16 20 1M 80286 16 24 16 M 80386SX 16 24 16 M 80386DX 32 32 4G 80486DX 32 32 4G Pentium 64 32 4G Pentium Pro 64 36 64 G Pentium I, II, III, IV 64 36 64 G Motorola 68000 16 24 16 M 68010 16 24 16 M 68020 32 32 4G 68030 32 32 4G 68040 32 32 4G 68060 64 32 4G PowerPC 64 32 4G
  • © DHBK 2005 1/Chapter2 Nộ dung môn họ i c1. Giớ thiệ chung vềhệvi xửlý i u2. Bộvi xửlý Intel 8088/80863. Lậ trình hợ ngữcho 8086 p p4. Tổchứ vào ra dữliệ c u5. Ngắ và xửlý ngắ t t6. Truy cậ bộnhớtrự tiế DMA p c p7. Các bộvi xửlý trên thự tế c
  • © DHBK 2005 2/Chapter2 Chư ng 2: Bộvi xửlý Intel 8088/8086 ơ• Cấ trúc bên trong u• Sơđ ồchân• Bả đ n ồbộnhớcủ máy tính IBM-PC a• Các chếđ ị chỉ a 8086 ộđa củ• Cách mã hoá lệ củ 8086 nh a• Mô tảtậ lệ củ 8086 p nh a• Cách đánh đa chỉ ị ởchếđộbả vệởcác máy tính từ o 80286
  • © DHBK 2005 3/Chapter2 Chư ng 2: Bộvi xửlý Intel 8088/8086 ơ• Cấ trúc bên trong u Sơđ ồkhố i Các thanh ghi đ nă a ng Các thanh ghi đ n oạ Các thanh ghi con trỏvà chỉsố Thanh ghi cờ Hàng đ i lệ ợ nh• Sơđ ồchân• Bả đ n ồbộnhớcủ máy tính IBM-PC a• Các chếđ ị chỉ a 8086 ộđa củ• Cách mã hoá lệ củ 8086 nh a• Mô tảtậ lệ củ 8086 p nh a• Cách đánh đa chỉ ị ởchếđộbả vệởcác máy tính từ o 80286
  • © DHBK 2005 4/Chapter2 Chư ng 2: Bộvi xửlý Intel 8088/8086 ơ• Cấ trúc bên trong u Sơđ ồkhố i Các thanh ghi đ nă a ng Các thanh ghi đ n oạ Các thanh ghi con trỏvà chỉsố Thanh ghi cờ Hàng đ i lệ ợ nh• Sơđ ồchân• Bả đ n ồbộnhớcủ máy tính IBM-PC a• Các chếđ ị chỉ a 8086 ộđa củ• Cách mã hoá lệ củ 8086 nh a• Mô tảtậ lệ củ 8086 p nh a• Cách đánh đa chỉ ị ởchếđộbả vệởcác máy tính từ o 80286
  • © DHBK 2005 5/Chapter2 Sơđ khố 8088/8086 ồ i EU bus đa chỉ ị BIUCác thanh AX 20 bit  BXghi đ nă a ng CX DX Bus trong củ CPU a Các thanh ghi CS SP 16 bit dữliệuCác thanh ghi đ n và con trỏ oạ DS BP 20 bit đa chỉ ị SScon trỏ SI lệ nh ESvà chỉsố DI IP Bus dữliệ u Logic ALU 16 bit đ u khiể iề n Các thanh ghi tạ thờ m i bus Bus ngoài Khố đ u i iề khiể n ALU củ EU a Hàng đ i lệ ợ nh Thanh ghi cờ
  • © DHBK 2005 6/Chapter2 Chư ng 2: Bộvi xửlý Intel 8088/8086 ơ• Cấ trúc bên trong u Sơđ ồkhố i Các thanh ghi đ nă a ng Các thanh ghi đ n oạ Các thanh ghi con trỏvà chỉsố Thanh ghi cờ Hàng đ i lệ ợ nh• Sơđ ồchân• Bả đ n ồbộnhớcủ máy tính IBM-PC a• Các chếđ ị chỉ a 8086 ộđa củ• Cách mã hoá lệ củ 8086 nh a• Mô tảtậ lệ củ 8086 p nh a• Cách đánh đa chỉ ị ởchếđộbả vệởcác máy tính từ o 80286
  • © DHBK 2005 7/Chapter2 Các thanh ghi đ nă củ 8088/8086 a ng a 8 bit cao 8 bit thấp •8088/8086 đ n 80286 : 16 bits ế AX AH AL •80386 trởlên: 32 bits EAX, BX BH BL EBX, ECX, EDX CX CH CL DX DH DL• Thanh ghi chứ AX (accumulator): chứ kế quảcủ các phép tính. a a t a Kế quả8 bit đ ợ chứ trong AL t ưc a• Thanh ghi cơsởBX (base): chứ đa chỉ a ị cơsở ví dụcủ bả dùng , a ng trong lệ XLAT (Translate) nh• Thanh ghi đ m CX (count): dùng đ ế ểchứ sốlầ lặ trong các lệ lặ a n p nh p (Loop). CL đ ợ dùng đ ưc ểchứ sốlầ dị hoặ quay trong các lệ a n ch c nh dị và quay thanh ghi ch• Thanh ghi dữliệ DX (data): cùng AX chứ dữliệ trong các phép u a u tính nhân chia số16 bit. DX còn đ ợ dùng đ ưc ểchứ đa chỉ ng a ị cổ trong các lệ vào ra dữliệ trự tiế (IN/OUT) nh u c p
  • © DHBK 2005 8/Chapter2 Chư ng 2: Bộvi xửlý Intel 8088/8086 ơ• Cấ trúc bên trong u  Sơđ ồkhố i  Các thanh ghi đ nă a ng  Các thanh ghi đ n oạ  Các thanh ghi con trỏvà chỉsố  Thanh ghi cờ  Hàng đ i lệ ợ nh• Sơđ ồchân• Bả đ n ồbộnhớcủ máy tính IBM-PC a• Các chếđ ị chỉ a 8086 ộđa củ• Cách mã hoá lệ củ 8086 nh a• Mô tảtậ lệ củ 8086 p nh a• Cách đánh đa chỉ ị ởchếđộbả vệởcác máy tính từ o 80286
  • © DHBK 2005 9/Chapter2 Các thanh ghi đ ạ o n• Tổchứ củ bộnhớ1 Mbytes c a Đ n bộnhớ(segment) FFFFFH oạ 216 bytes =64 KB Đ n 1: đa chỉ ầ 00000 H oạ ị đu Đ n 2: đa chỉ ầ 00010 H oạ ị đu Đ n cuố cùng: oạ i FFFF0 H Ô nhớtrong đ n: oạ đa chỉ ch: offset ị lệ Ô 1: offset: 0000 Ô cuố cùng: offset: FFFF i Đa chỉ t lý: ị vậ 1FFFFH Segment : offset Offset=F000 1F000H 10000H 1000Đa chỉ t lý=Segment*16 + offset ị vậ Thanh ghi đ n oạ Chếđộthự (real mode) c 00000H
  • © DHBK 2005 10/Chapter2 Các thanh ghi đ ạ o n• Ví dụ Đa chỉ t lý 12345H : ị vậ Đa chỉ oạ ị đ n Điạchỉ ch lệ 1000 H 2345H 1200 H 0345H 1004 H ? 0300 H ?• Ví dụ Cho đa chỉ ầ củ đ n: 49000 H, xác đnh đa chỉ i : ị đu a oạ ị ị cuố
  • © DHBK 2005 11/Chapter2 Các thanh ghi đ ạ o n• Các thanh ghi đ n: chứ đa chỉ oạ oạ a ị đ n FFFFF ............. 58FFF Đ n dữliệ phụ oạ u extra segment 49000 4900 ES 43FFF Đ n ngă xế oạ n p Stack segment 34000 3400 SS 30000 2FFFF Đ n mã oạ Code segment 20000 CS 2000 1FFFF Đ n dữliệ oạ u Data segment 10000 1000 DS 00000
  • © DHBK 2005 12/Chapter2 Các thanh ghi đ ạ o n• Các đ n chồ nhau oạ ng FFFFF s t a d c a k 0A480 t 0A47F a c Stack o 0A280 d 0A28 SS 0A27F e Data 0A0F0 DS 0A0F 0A0EF Code 090F0 090F CS 00000
  • © DHBK 2005 13/Chapter2 Chư ng 2: Bộvi xửlý Intel 8088/8086 ơ• Cấ trúc bên trong u  Sơđ ồkhố i  Các thanh ghi đ nă a ng  Các thanh ghi đ n oạ  Các thanh ghi con trỏvà chỉsố  Thanh ghi cờ  Hàng đ i lệ ợ nh• Sơđ ồchân• Bả đ n ồbộnhớcủ máy tính IBM-PC a• Các chếđ ị chỉ a 8086 ộđa củ• Cách mã hoá lệ củ 8086 nh a• Mô tảtậ lệ củ 8086 p nh a• Cách đánh đa chỉ ị ởchếđộbả vệởcác máy tính từ o 80286
  • © DHBK 2005 14/Chapter2 Các thanh ghi con trỏvà chỉ ố s• Chứ đa chỉ ch (offset) a ị lệ  Con trỏlệ IP (instruction pointer): chứ đa chỉ nh tiế nh a ị lệ p theo trong đ n mã lệ CS. oạ nh CS:IP Con trỏcơsởBP (Base Pointer): chứ đa chỉ a dữliệ a ị củ u trong đ n ngă xế SS hoặ các đ n khác oạ n p c oạ SS:BP  Con trỏngă xế SP (Stack Pointer): chứ đa chỉ n thờ n p a ị hiệ i củ đnh ngă xế a ỉ n p SS:SP Chỉ sốnguồ SI (Source Index): chứ đa chỉ n a ị dữliệ nguồ u n trong đ n dữliệ DS trong các lệ chuỗ oạ u nh i DS:SI Chỉ sốđích (Destination Index): chứ đa chỉ a ị dữliệ đ u ích trong đ n dữliệ DS trong các lệ chuỗ oạ u nh i DS:DI SI và DI có thểđ ợ sửdụ nhưthanh ghi đ nă ưc ng a ng 80386 trởlên 32 bit: EIP, EBP, ESP, EDI, ESI
  • © DHBK 2005 15/Chapter2 Các thanh ghi con trỏvà chỉ ố s• Thanh ghi đ n và thanh ghi lệ ngầ đnh oạ ch m ị Segment Offset Chú thích CS IP Đa chỉ nh ị lệ SS SP hoặ BP c Đa chỉ ị ngă xế n p DS BX, DI, SI, số8 bit Đa chỉ ị dữliệu hoặ số16 bit c ES DI Đa chỉ ị chuỗi đích
  • © DHBK 2005 16/Chapter2 Chư ng 2: Bộvi xửlý Intel 8088/8086 ơ• Cấ trúc bên trong u  Sơđ ồkhố i  Các thanh ghi đ nă a ng  Các thanh ghi đ n oạ  Các thanh ghi con trỏvà chỉsố  Thanh ghi cờ  Hàng đ i lệ ợ nh• Sơđ ồchân• Bả đ n ồbộnhớcủ máy tính IBM-PC a• Các chếđ ị chỉ a 8086 ộđa củ• Cách mã hoá lệ củ 8086 nh a• Mô tảtậ lệ củ 8086 p nh a• Cách đánh đa chỉ ị ởchếđộbả vệởcác máy tính từ o 80286
  • © DHBK 2005 17/Chapter2 Thanh ghi cờ(Flag Register) 15 14 2 1 0 O D I T S Z A P C• 9 bit đ ợ sửdụ ưc ng, 6 cờtrạ thái: ng C hoă CF (carry flag)): CF=1 khi có nhớhoặ mư n từMSB c c ợ P hoặ PF (parity flag): PF=1 (0) khi tổ sốbít 1 trong kế c ng t quảlà chẵ (lẻ n ) A hoặ AF (auxilary carry flag): cờnhớphụ AF=1 khi có c , nhớhoặ mư n từmộ sốBCD thấ sang BCD cao c ợ t p Z hoặ ZF (zero flag): ZF=1 khi kế quảbằ 0 c t ng S hoặ SF (Sign flag): SF=1 khi kế quảâm c t O hoặ OF (Overflow flag): cờtràn OF=1 khi kế quảlà mộ c t t sốvư t ra ngoài giớ hạ biể diễ củ nó trong khi thự ợ i n u n a c hiệ phép toán cộ trừsốcó dấ n ng u
  • © DHBK 2005 18/Chapter2 Thanh ghi cờ(Flag Register) 15 14 2 1 0 O D I T S Z A P C• 3 cờđ u khiể iề n T hoă TF (trap flag)): cờbẫ TF=1 khi CPU làm việ ởchế c y, c đ ộchạ từ lệ y ng nh I hoặ IF (Interrupt enable flag): cờcho phép ngắ IF=1 thì c t, CPU sẽcho phép các yêu cầ ngắ (ngắ che đ ợ đ ợ u t t ư c) ư c tác đ ng (Các lệ ộ nh: STI, CLI) D hoặ DF (direction flag): cờhư ng, DF=1 khi CPU làm c ớ việ vớ chuỗ ký tựtheo thứtựtừphả sang trái (lệ STD, c i i i nh CLD)
  • © DHBK 2005 19/Chapter2 Thanh ghi cờ(Flag Register)• Ví dụ: 80h + 80h 100h SF=0 vì msb trong kế quả=0 t PF=1 vì có 0 bít củ tổ bằ 1 a ng ng ZF=1 vì kế qủ thu đ ợ là 0 t a ưc CF=1 vì có nhớtừbít msb trong phép cộng OF=1 vì có tràn trong phép cộ 2 sốâm ng
  • © DHBK 2005 20/Chapter2 Chư ng 2: Bộvi xửlý Intel 8088/8086 ơ• Cấ trúc bên trong u  Sơđ ồkhố i  Các thanh ghi đ nă a ng  Các thanh ghi đ n oạ  Các thanh ghi con trỏvà chỉsố  Thanh ghi cờ  Hàng đ i lệ ợ nh• Sơđ ồchân• Bả đ n ồbộnhớcủ máy tính IBM-PC a• Các chếđ ị chỉ a 8086 ộđa củ• Cách mã hoá lệ củ 8086 nh a• Mô tảtậ lệ củ 8086 p nh a• Cách đánh đa chỉ ị ởchếđộbả vệởcác máy tính từ o 80286
  • © DHBK 2005 21/Chapter2 Hà ng đ i lệ ợ nh• 4 bytes đ i vớ 8088 và 6 bytes đ i vớ 8086 ố i ố i• Xửlý pipeline Không có pipelining F1 D1 E1 F2 D2 E2 F3 D3 E3 F1 D1 E1 Có pipelining F2 D2 E2 F3 D3 E3
  • © DHBK 2005 22/Chapter2 Chư ng 2: Bộvi xửlý Intel 8088/8086 ơ• Cấ trúc bên trong u• Sơđ ồchân• Bả đ n ồbộnhớcủ máy tính IBM-PC a• Các chếđ ị chỉ a 8086 ộđa củ• Cách mã hoá lệ củ 8086 nh a• Mô tảtậ lệ củ 8086 p nh a• Cách đánh đa chỉ ị ởchếđộbả vệởcác máy tính từ o 80286
  • © DHBK 2005 23/Chapter2 Intel 8088 • 16-bit processor • introduced in 1979 • 3  5 to 8 MHz, 29 m, KTOR, 0.33 to 0.66 MIPS
  • © DHBK 2005 24/Chapter2 Intel 8088 •ChếđộMin và chếđộMax: MN/MX = 1 chếđ ộMin = 0 chếđ ộMax vớ bus i controller 8288
  • © DHBK 2005 25/Chapter2 Intel 8086
  • © DHBK 2005 26/Chapter2 Chư ng 2: Bộvi xửlý Intel 8088/8086 ơ• Cấ trúc bên trong u• Sơđ ồchân• Bả đ n ồbộnhớcủ máy tính IBM-PC a• Các chếđ ị chỉ a 8086 ộđa củ• Cách mã hoá lệ củ 8086 nh a• Mô tảtậ lệ củ 8086 p nh a• Cách đánh đa chỉ ị ởchếđộbả vệởcác máy tính từ o 80286
  • © DHBK 2005 27/Chapter2 Bả đ bộnhớcủ máy tính IBM PC n ồ a Vùng nhớ mởrộ ng FFFFF Vùng nhớ hệ ng thố A0000 484 Kbytes 1 Mbytes 9FFFF bộnhớthự c Vùng nhớ ơ chư ng trình 640 Kbytes 00000
  • © DHBK 2005 28/Chapter2 Bả đ vùng nhớchư ng trình n ồ ơ 9FFFF MSDOS 9FFF0 Vùng dành cho các chư ng trình ứ dụ ơ ng ng 08E30 COMMAND.COM 08490 Device drivers (mouse.sys) 02530 MSDOS 01160 IO.SYS 00700 Vùng DOS 00500 Vùng BIOS 00400 00000 Các vector ngắt
  • © DHBK 2005 29/Chapter2 Bả đ vùng nhớhệthố n ồ ng FFFFF ROM BIOS F0000 ROM BASIC E0000 Vùng đểdành C8000 Video BIOS ROM C0000 Video RAM (text) B0000 Video RAM (đồhoạ) A0000
  • © DHBK 2005 30/Chapter2 Các cổ vào ra ng• Đa chỉ0000H –FFFFH, M/IO =0 ị : FFFF Vùng mởrộng COM1 03F8 Đ u khiể đa mề iề n ĩ m 03F0 CGA adapter 03D0 LPT1 0378 Đ u khiể ổcứ iề n ng 0320 COM2 02F8 8255 0060 Đnh thờ (8253) ị i 0040 Đ u khiể ngắ iề n t 0020 0000 Đ u khiể DMA iề n
  • © DHBK 2005 31/Chapter2 Trình tựkhở đ ng i ộ• Khi bậ nguồ hoặ nhấ Reset t n c n CS=FFFFh và IP=0000 => đa chỉ ị FFFF0 chứ chỉ chuyể a thị n đ u khiể đ n đ m khớ đ u củ các chư ng trình BIOS iề n ế iể i ầ a ơ Các chư ng trình BIOS kiể tra hệthố và bộnhớ ơ m ng Các chư ng trình BIOS khở tạ bả vector ngắ và vùng ơ i o ng t dữliệ BIOS u BIOS nạ chư ng trình khở đ ng (boot program) từđa vào p ơ i ộ ĩ bộnhớ Chư ng trình khở đ ng nạ hệđ u hành từđa vào bộnhớ ơ i ộ p iề ĩ Hệđ u hành nạ các chư ng trình ứ dụ iề p ơ ng ng
  • © DHBK 2005 32/Chapter2 Vùng nhớd ành riêng củ 8088/8086 a FFFFF Reset Bootstrap FFFF0 program jump 003FF Các vector ngắt 00000
  • © DHBK 2005 33/Chapter2 Chư ng 2: Bộvi xửlý Intel 8088/8086 ơ• Cấ trúc bên trong u• Sơđ ồchân• Bả đ n ồbộnhớcủ máy tính IBM-PC a• Các chếđ ị chỉ a 8086 ộđa củ  Chếđ ị chỉ ộđa thanh ghi  Chếđ ị chỉ c thì ộđa tứ  Chếđ ị chỉ c tiế ộđa trự p  Chếđ ị chỉ ộđa gián tiế qua thanh ghi p  Chếđ ị chỉ ơ đ i cơsở ộđa tư ng ố  Chếđ ị chỉ ơ đ i chỉ ộđa tư ng ố số  Chếđ ị chỉ ơ đ i chỉ ộđa tư ng ố sốcơsở• Cách mã hoá lệ củ 8086 nh a• Mô tảtậ lệ củ 8086 p nh a• Cách đánh đa chỉ ị ởchếđộbả vệởcác máy tính từ o 80286
  • Chếđ đa chỉ thanh ghi© DHBK 2005 34/Chapter2 ộ ị (Register Addressing Mode)• Dùng các thanh ghi nhưlà các toán hạng• Tố đ c ộthự hiệ lệ cao c n nh• Ví dụ: MOV BX, DX ; Copy nộ dung DX vào BX i MOV AL, BL ; Copy nộ dung BL vào AL i MOV AL, BX ; không hợ lệvì các thanh ghi có kích thư c p ớ khác nhau MOV ES, DS ; không hợ lệ (segment to segment) p MOV CS, AX ; không hợ lệvì CS không đ ợ dùng làm p ưc thanh ghi đích ADD AL, DL ; Cộ nộ dung AL và DL rồ đ a vào AL ng i i ư
  • Chếđ đa chỉứ thì t c© DHBK 2005 35/Chapter2 ộ ị (Immediate Addressing Mode)• Toán hạ đ ng ích là thanh ghi hoặ ô nhớ c• Toán hạ nguồ là hằ số ng n ng• Dùng đ ểnạ hằ sốvào thanh thi (trừthanh ghi p ng đ n và thanh cờ hoặ vào ô nhớtrong đ n dữliệ oạ ) c oạ u DS• Ví dụ: MOV BL, 44 ; Copy sốthậ phân 44 vào thanh ghi BL p MOV AX, 44H ; Copy 0044H vào thanh ghi AX MOV AL, ‘A’ ; Copy mã ASCII củ A vào thanh ghi AL a MOV DS, 0FF0H ; không hợ lệ p MOV AX, 0FF0H ; MOV DS, AX ; MOV [BX], 10 ; copy sốthậ phân 10 vào ô nhớDS:BX p
  • Chếđ đa chỉ ự tiế tr c p© DHBK 2005 36/Chapter2 ộ ị (Direct Addressing Mode)• Mộ toán hạ là đa chỉ nhớchứ dữliệ t ng ị ô a u• Toán hạ kia chỉ thểlà thanh ghi ng có• Ví dụ: MOV AL, [1234H] ; Copy nộdung ô nhớ đ chỉ i có ị DS:1234 vào AL a MOV [ 4320H ], CX ; Copy nộdung củ CX vào 2 ô nhớ tiế DS: i a liên p 4320 và DS: 4321
  • Chếđ đa chỉ án tiế qua thanh ghi gi p© DHBK 2005 37/Chapter2 ộ ị (Register indirect Addressing Mode)• Mộ toán hạ là thanh ghi chứ đa chỉ a 1 ô nhớ t ng a ị củ dữliệu• Toán hạ kia chỉ thểlà thanh ghi ng có• Ví dụ: MOV AL, [BX] ; Copy nộdung ô nhớ đ chỉ i có ị DS:BX vào AL a MOV [ SI ], CL ; Copy nộdung củ CL vào ô nhớ đ chỉ i a có ị DS:SI a MOV [ DI ], AX ; copy nộ dung củ AX vào 2 ô nhớ i a liên tiế DS: DI và DS: p (DI +1)
  • Chếđ đa chỉ ơ đ i cơsở tư ng ố© DHBK 2005 38/Chapter2 ộ ị (Based relative Addressing Mode)• Mộ toán hạ là thanh ghi cơsởBX, BP và các t ng hằ sốbiể diễ giá trị ch chuyể ng u n dị n• Toán hạ kia chỉ thểlà thanh ghi ng có• Ví dụ: MOV CX, [BX]+10 ; Copy nộdung 2 ô nhớ i liên tiế có đ chỉ p ị DS:BX+10 a và DS:BX+11 vào CX MOV CX, [BX+10] ; Cách viếkhác củ lệ trên t a nh MOV AL, [BP]+5 ; copy nộdung củ ô nhớ i a SS:BP+5 vào thanh ghi AL
  • Chếđ đa chỉ ơ đ i chỉ ố tư ng ố s© DHBK 2005 39/Chapter2 ộ ị (Indexed relative Addressing Mode)• Mộ toán hạ là thanh ghi chỉ t ng sốSI, DI và các hằng sốbiể diễ giá trị ch chuyể u n dị n• Toán hạ kia chỉ thểlà thanh ghi ng có• Ví dụ: MOV AX, [SI]+10 ; Copy nộ dung 2 ô nhớ tiế có đ chỉ i liên p ị DS:SI+10 và a DS:SI+11 vào AX MOV AX, [SI+10] ; Cách viếkhác củ lệ trên t a nh MOV AL, [DI]+5 ; copy nộdung củ ô nhớ i a DS:DI+5 vào thanh ghi AL
  • 40/Chapter2 Chếđ đa chỉ ơ đ i chỉ ốcơsở tư ng ố s© DHBK 2005 ộ ị ( Based Indexed relative Addressing Mode)• Ví dụ: MOV AX, [BX] [SI]+8 ; Copy nộdung 2 ô nhớ tiế có đ chỉ i liên p ị a DS:BX+SI+8 và DS:BX+SI+9 vào AX MOV AX, [BX+SI+8] ; Cách viếkhác củ lệ trên t a nh MOV CL, [BP+DI+5] ; copy nộ dung củ ô nhớ i a SS:BP+DI+5 vào thanh ghi CL
  • © DHBK 2005 41/Chapter2 Tóm tắ các chếđ đa chỉ t ộ ị Chế ộ ị chỉ đ đa Toán hạng Thanh ghi đ n ngầ đnh oạ m ị Thanh ghi Thanh ghi Tứ thì c Dữliệ u Trự tiế c p [offset] DS Gián tiế qua thanh ghi p [BX] DS [SI] DS [DI] DS Tư ng đ i cơsở ơ ố [BX] + dị chuyể ch n DS [BP] + dị chuyể ch n SS Tư ng đ i chỉ ơ ố số [DI] + dị chuyể ch n DS [SI] + dị chuyể ch n DS Tư ng đ i chỉ cơsở ơ ố số [BX] + [DI]+ dị chuyể ch n DS [BX] + [SI]+ dị chuyể ch n DS [BP] + [DI]+ dị chuyể ch n SS [BP] + [SI]+ dị chuyể ch n SS
  • Bỏchếđ ngầ đnh thanh ghi đ ạ m ị o n© DHBK 2005 42/Chapter2 ộ (Segment override)• Ví dụ: MOV AL, [BX]; Copy nộ dung ô nhớ đ chỉ i có ị DS:BX vào AL a MOV AL, ES:[BX] ; Copy nộ dung ô nhớ đ chỉ i có ị ES:BX vào AL a
  • © DHBK 2005 43/Chapter2 Chư ng 2: Bộvi xửlý Intel 8088/8086 ơ• Cấ trúc bên trong u• Sơđ ồchân• Bả đ n ồbộnhớcủ máy tính IBM-PC a• Các chếđ ị chỉ a 8086 ộđa củ• Cách mã hoá lệ củ 8086 nh a• Mô tảtậ lệ củ 8086 p nh a• Cách đánh đa chỉ ị ởchếđộbả vệởcác máy tính từ o 80286
  • © DHBK 2005 44/Chapter2 Cách mã hoá lệ củ 8086 nh a Opcode MOD-REG-R/M Dị chuyể ch n Tứ thì c 1-2 byte 0-1 byte 0-2 byte 0-2 byte• Mộ lệ có đ t nh ộdài từ1 đ n 6 byte ế D W W=0 dữliệ 1 byte u Opcode W=1 dữliệ 2 byte u D=1 dữliệ đ đ n thanh ghi cho bở 3 bit REG u i ế i D=0 dữliệ đ từthanh ghi cho bở 3 bit REG u i i
  • © DHBK 2005 45/Chapter2 Cách mã hoá lệ củ 8086 nh a MOD REG R/M MOD <> 1100 không có dị chuyể ch n Thanh ghi Mã Mã Chế ộ ị chỉ đ đa01 dị chuyể 8 bit ch n10 dị chuyể 16 bit ch n W=1 W=0 000 DS:[BX+SI]11 R/M là thanh ghi AX AL 000 001 DS:[BX+DI] BX BL 011 010 SS:[BP+SI] CX CL 001 011 SS:[BP+DI] DX DL 010 100 DS:[SI] SP AH 100 101 DS:[DI] DI BH 111 110 SS:[BP] BP CH 101 111 DS:[BX] SI DH 110
  • © DHBK 2005 46/Chapter2 Cách mã hoá lệ củ 8086 nh a• Ví dụ chuyể lệ MOV CL, [BX] sang mã máy : n nh opcode MOV: 100010 Dữliệ là 1 byte: W=0 u Chuyể tớ thanh ghi: D=1 n i Không có dị chuyể MOD=00 ch n: [BX] nên R/M=111 CL nên REG=001 1 0 0 0 1 0 1 0 0 0 0 0 1 1 1 1 MOV MOD CL [BX] D WVí dụ2: chuyể lệ MOV [SI+F3H], CL sang mã máy n nh
  • © DHBK 2005 47/Chapter2 Chư ng 2: Bộvi xửlý Intel 8088/8086 ơ• Cấ trúc bên trong u• Sơđ ồchân• Bả đ n ồbộnhớcủ máy tính IBM-PC a• Các chếđ ị chỉ a 8086 ộđa củ• Cách mã hoá lệ củ 8086 nh a• Mô tảtậ lệ củ 8086 p nh a  Các lệ di chuyể dữliệ nh n u  Các lệ sốhọ và logic nh c  Các lệ đ u khiể chư ng trình nh iề n ơ• Cách đánh đa chỉ ị ởchếđộbả vệởcác máy tính từ o 80286
  • © DHBK 2005 48/Chapter2 Chư ng 2: Bộvi xửlý Intel 8088/8086 ơ• Cấ trúc bên trong u• Sơđ ồchân• Bả đ n ồbộnhớcủ máy tính IBM-PC a• Các chếđ ị chỉ a 8086 ộđa củ• Cách mã hoá lệ củ 8086 nh a• Mô tảtậ lệ củ 8086 p nh a  Các lệ di chuyể dữliệ nh n u  Các lệ sốhọ và logic nh c  Các lệ đ u khiể chư ng trình nh iề n ơ• Cách đánh đa chỉ ị ởchếđộbả vệởcác máy tính từ o 80286
  • © DHBK 2005 49/Chapter2 Cá c lệ di chuyể dữliệ nh n u• MOV, XCHG, POP, PUSH, POPF, PUSHF, IN, OUT• Các lệ di chuyể chuỗ MOVS, MOVSB, MOVSW nh n i• MOV Dùng đ ểchuyể giữ các thanh ghi, giữ 1 thanh ghi và 1 ô n a a nhớhoặ chuyể 1 sốvào thanh ghi hoặ ô nhớ c n c Cú pháp: MOV Đ ích, nguồn  Lệ này không tác đ ng đ n cờ nh ộ ế Ví dụ: MOV AX, BX MOV AH, ‘A’ MOV AL, [1234H]
  • © DHBK 2005 50/Chapter2 Cá c lệ di chuyể dữliệ nh n u• Khảnă kế hợ toán hạ củ lệ MOV ng t p ng a nh Đích Thanh ghi Thanh ghi ô nhớ Hằ số ng đ nă a ng đ n oạ Nguồn Thanh ghi YES YES YES NO đ nă a ng Thanh ghi YES NO YES NO đ n oạ Ô nhớ YES YES NO NO Hằ số ng YES NO YES NO
  • © DHBK 2005 51/Chapter2 Cá c lệ di chuyể dữliệ nh n u• Lệ XCHG nh  Dùng đ ểhoán chuyể nộ dung giữ hai thanh ghi, giữ 1 thanh ghi n i a a và 1 ô nhớ  Cú pháp: XCHG Đ ích, nguồn  Giớ hạ toán hạ không đ ợ là thanh ghi đ n i n: ng ưc oạ  Lệ này không tác đ ng đ n cờ nh ộ ế  Ví dụ :  XCHG AX, BX  XCHG AX, [BX]
  • © DHBK 2005 52/Chapter2 Cá c lệ di chuyể dữliệ nh n u• Lệ PUSH nh  Dùng đ ểcấ 1 từtừ thanh ghi hoặ ô nhớvào đnh ngă xế t c ỉ n p  Cú pháp: PUSH Nguồ n  Mô tả SP=SP-2, Nguồ => {SP} : n  Giớ hạ thanh ghi 16 bit hoặ là 1 từnhớ i n: c  Lệ này không tác đ ng đ n cờ nh ộ ế  Ví dụ :  PUSH BX  PUSH PTR[BX]• Lệ PUSHF nh  Cấ nộ dung củ thanh ghi cờvào ngă xế t i a n p
  • © DHBK 2005 53/Chapter2 Cá c lệ di chuyể dữliệ nh n u• Ví dụvềlệ PUSH nh PUSH AX PUSH BX SP1300A 1300A 1300A13009 13009 12 13009 1213008 13008 SP 13008 34 3413007 13007 13007 7813006 13006 13006 SP 5613005 13005 1300513004 13004 1300413003 13003 1300313002 13002 1300213001 13001 1300113000 13000 13000SS 1300 SS 1300 SS 1300SP 000A SP 0008 SP 0006 AX 1234 AX 1234 BX 7856
  • © DHBK 2005 54/Chapter2 Cá c lệ di chuyể dữliệ nh n u• Lệ POP nh  Dùng đ y lạ 1 từvào thanh ghi hoặ ô nhớtừđnh ngă xế ểlấ i c ỉ n p  Cú pháp: POP Đ ích  Mô tả {SP} => Đ : ích, SP=SP+2  Giớ hạ thanh ghi 16 bit (trừCS) hoặ là 1 từnhớ i n: c  Lệ này không tác đ ng đ n cờ nh ộ ế  Ví dụ :  POP BX  POP PTR[BX]• Lệ POPF nh  Lấ 1 từtừđnh ngă xế rồ đ a vào thanh ghi cờ y ỉ n p i ư
  • © DHBK 2005 55/Chapter2 Cá c lệ di chuyể dữliệ nh n u• Ví dụlệ POP nh POP DX 1300A 1300A 13009 12 13009 12 13008 34 13008 34 SP 13007 78 13007 78 13006 SP 13006 56 56 13005 13005 13004 13004 13003 13003 13002 13002 13001 13001 13000 13000 SS 1300 SS 1300 SP 0006 SP 0008 DX 3254 DX 7856
  • © DHBK 2005 56/Chapter2 Cá c lệ di chuyể dữliệ nh n u• Lệ IN nh  Dùng đ ọ 1 byte hoặ 2 byte dữliệ từcổ vào thanh ghi AL ểđ c c u ng hoặ AX c  Cú pháp: IN Acc, Port  Lệ này không tác đ ng đ n cờ nh ộ ế  Ví dụ :  IN AX, 00H  IN AL, F0H  IN AX, DX• Lệ OUT nh  Dùng đ ư 1 byte hoặ 2 byte dữliệ từthanh ghi AL hoặ AX ra ểđ a c u c cổng  Cú pháp: OUT Port, Acc  Lệ này không tác đ ng đ n cờ nh ộ ế  Ví dụ:  OUT 00H, AX  OUT F0H, AL  OUT DX, AX
  • © DHBK 2005 57/Chapter2 Cá c lệ di chuyể dữliệ nh n u• Các lệ di chuyể chuỗ MOVS, MOVSB, MOVSW nh n i Dùng đểchuyể mộ phầ tửcủ chuỗ này sang mộ chuỗ n t n a i t i khác Cú pháp: MOVS chuỗ đ i ích, chuỗ nguồ i n MOVSB MOVSW Thự hiệ c n: DS:SI là đa chỉ a phầ tửtrong chuỗ nguồ ị củ n i n ES:DI là đa chỉ a phầ tửtrong chuỗ đ ị củ n i ích Sau mỗ lầ chuyể SI=SI +/- 1, DI=DI +/- 1 hoặ SI=SI +/- 2, i n n c DI=DI +/- 2 tuỳthuộ vào cờhư ng DF là 0/1 c ớ  Lệ này không tác đ ng đ n cờ nh ộ ế Ví dụ: MOVS byte1, byte2
  • © DHBK 2005 58/Chapter2 Chư ng 2: Bộvi xửlý Intel 8088/8086 ơ• Cấ trúc bên trong u• Sơđ ồchân• Bả đ n ồbộnhớcủ máy tính IBM-PC a• Các chếđ ị chỉ a 8086 ộđa củ• Cách mã hoá lệ củ 8086 nh a• Mô tảtậ lệ củ 8086 p nh a  Các lệ di chuyể dữliệ nh n u  Các lệ sốhọ và logic nh c  Các lệ đ u khiể chư ng trình nh iề n ơ• Cách đánh đa chỉ ị ởchếđộbả vệởcác máy tính từ o 80286
  • © DHBK 2005 59/Chapter2 Các lệ sốhọ và logic nh c• ADD, ADC, SUB, MUL, IMUL, DIV, IDIV, INC, DEC• AND, OR, NOT, NEG, XOR• Lệ quay và dị RCL, RCR, SAL, SAR, SHL, SHR nh ch:• Lệ so sánh: CMP, CMPS nh• Lệ ADD nh Lệ cộ hai toán hạ nh ng ng Cú pháp: ADD Đ ích, nguồ n Thự hiệ Đ c n: ích=Đích + nguồn Giớ hạ toán hạ không đ ợ là 2 ô nhớvà thanh ghi i n: ng ưc đ n oạ Lệ này thay đ i cờ AF, CF, OF, PF, SF, ZF nh ổ : Ví dụ : ADD AX, BX ADD AX, 40H
  • © DHBK 2005 60/Chapter2 Các lệ sốhọ và logic nh c• Lệ ADC nh  Lệ cộ có nhớhai toán hạ nh ng ng  Cú pháp: ADC Đ ích, nguồn  Thự hiệ Đ c n: ích=Đích + nguồn+CF  Giớ hạ toán hạ không đ ợ là 2 ô nhớvà thanh ghi đ n i n: ng ưc oạ  Lệ này thay đ i cờ AF, CF, OF, PF, SF, ZF nh ổ :  Ví dụ :  ADC AL, 30H• Lệ SUB nh  Lệ trừ nh  Cú pháp: SUB Đ ích, nguồn  Thự hiệ Đ c n: ích=Đích - nguồn  Giớ hạ toán hạ không đ ợ là 2 ô nhớvà thanh ghi đ n i n: ng ưc oạ  Lệ này thay đ i cờ AF, CF, OF, PF, SF, ZF nh ổ :  Ví dụ :  SUB AL, 30H
  • © DHBK 2005 61/Chapter2 Các lệ sốhọ và logic nh c• Lệ MUL nh Lệ nhân sốkhông dấ nh u Cú pháp: MUL nguồn Thự hiệ c n:  AX=AL* nguồn8bit DXAX=AX*nguồ n16bit Lệ này thay đ i cờ CF, OF nh ổ : Ví dụ: MUL BL• Lệ IMUL nh  nhân sốcó dấu
  • © DHBK 2005 62/Chapter2 Các lệ sốhọ và logic nh c• Lệ DIV nh Lệ chia 2 sốkhông dấ nh u Cú pháp: DIV nguồn Thự hiệ c n: AL = thư ng (AX / nguồ ơ n8bit) ; AH=dư(AX / nguồn8bit) AX = thư ng (DXAX / nguồ ơ n16bit) ; DX=dư(DXAX / nguồ n16bit) Lệ này không thay đ i cờ nh ổ Ví dụ: DIV BL• Lệ IDIV nh  chia 2 sốcó dấu
  • © DHBK 2005 63/Chapter2 Các lệ sốhọ và logic nh c• Lệ INC nh Lệ cộ 1 vào toán hạ là thanh ghi hoặ ô nhớ nh ng ng c Cú pháp: INC Đích Thự hiệ Đ c n: ích=Đ ích + 1 Lệ này thay đ i cờ AF, OF, PF, SF, ZF nh ổ : Ví dụ: INC AX• Lệ DEC nh Lệ trừ1 từnộ dung mộ thanh ghi hoặ ô nhớ nh i t c Cú pháp: DEC Đích Thự hiệ Đ c n: ích=Đ ích - 1 Lệ này thay đ i cờ AF, OF, PF, SF, ZF nh ổ : Ví dụ: DEC [BX]
  • © DHBK 2005 64/Chapter2 Các lệ sốhọ và logic nh c• Lệ AND nh Lệ AND logic 2 toán hạ nh ng Cú pháp: AND Đ ích, nguồn Thự hiệ Đ c n: ích=Đích And nguồ n Giớ hạ toán hạ không đ ợ là 2 ô nhớhoặ thanh ghi i n: ng ưc c đ n oạ Lệ này thay đ i cờ PF, SF, ZF và xoá cờCF, OF nh ổ : Ví dụ : AND BL, 0FH• Lệ XOR, OR: tư ng tựnhưlệ AND nh ơ nh• Lệ NOT: đ o từ bit củ toán hạ nh ả ng a ng• Lệ NEG: xác đnh sốbù 2 củ toán hạ nh ị a ng
  • © DHBK 2005 65/Chapter2 Các lệ sốhọ và logic nh c• Lệ CMP nh  Lệ so sánh 2 byte hoặ 2 từ nh c  Cú pháp: CMP Đích, nguồn  Thự hiệ c n: Đích = nguồ : CF=0 n ZF=1 Đích> nguồ : CF=0 n ZF=0 Đích < nguồ : CF=1 n ZF=0  Giớ hạ toán hạ phả cùng đ i n: ng i ộdài và không đ ợ là 2 ô nhớ ưc• Lệ CMPS nh  Dùng đểso sánh từ phầ tửcủ 2 chuỗ có các phầ tửcùng ng n a i n loại  Cú pháp: CMPS chuỗ đ i ích, chuỗ nguồ i n CMPSB CMPSW  Thự hiệ c n:  DS:SI là đa chỉ a phầ tửtrong chuỗ nguồ ị củ n i n  ES:DI là đa chỉ a phầ tửtrong chuỗ đ ị củ n i ích  Sau mỗ lầ so sánh SI=SI +/- 1, DI=DI +/- 1 hoặ SI=SI +/- 2, DI=DI +/- 2 i n c tuỳthuộ vào cờhư ng DF là 0/1 c ớ  Cậ nhậ cờAF, CF, OF, PF, SF, ZF p t
  • © DHBK 2005 66/Chapter2 Các lệ sốhọ và logic nh c• Lệ RCL nh Lệ quay trái thông qua cờnhớ nh Cú pháp: RCL Đ ích, CL (vớ sốlầ quay lớ hơ 1) i n n n RCLĐ ích, 1 RCL Đ ích, Sốlầ quay (80286 trởlên) n Thự hiệ quay trái đ c n: ích CL lần Đích là thanh ghi (trừthanh ghi đ n) hoặ ô nhớ oạ c Lệ này thay đ i cờ CF, OF nh ổ : CF MSB LSB• Lệ RCR nh Lệ quay phả thông qua cờnhớ nh i
  • © DHBK 2005 67/Chapter2 Các lệ sốhọ và logic nh c• Lệ ROL nh Lệ quay trái nh Cú pháp: ROL Đ ích, CL (vớ sốlầ quay lớ hơ 1) i n n n ROL Đ ích, 1 ROL Đ ích, Sốlầ quay (80286 trởlên) n Thự hiệ quay trái đ c n: ích CL lần Đích là thanh ghi (trừthanh ghi đ n) hoặ ô nhớ oạ c Lệ này thay đ i cờ CF, OF nh ổ : CF MSB LSB• Lệ ROR nh Lệ quay phả nh i
  • © DHBK 2005 68/Chapter2 Các lệ sốhọ và logic nh c• Lệ SAL nh Lệ dị trái sốhọ nh ch c Cú pháp: SAL Đích, CL (vớ sốlầ dị lớ hơ 1) i n ch n n SAL Đ ích, 1 SAL Đích, sốlầ dị (80286 trởlên) n ch Thự hiệ dị trái đ c n: ch ích CL bit tư ng đ ơ vớ ơ ư ng i Đích=Đích*2CL Lệ này thay đ i cờSF, ZF, PF nh ổ CF MSB LSB 0• Lệ SHL nh Lệ dị trái logic tư ng tựnhưSAL nh ch ơ
  • © DHBK 2005 69/Chapter2 Các lệ sốhọ và logic nh c• Lệ SAR nh Lệ dị phả sốhọ nh ch i c Cú pháp: SAR Đ ích, CL (vớ sốlầ dị lớ hơ 1) i n ch n n SAR Đ ích, 1 hoặ SAR Đ c ích, sốlầ dị (80286 trởlên) n ch Thự hiệ dị phả đ c n: ch i ích CL bit Lệ này thay đ i cờSF, ZF, PF, CF mang giá trị a MSB nh ổ củ MSB LSB CF
  • © DHBK 2005 70/Chapter2 Các lệ sốhọ và logic nh c• Lệ SHR nh Lệ dị phả logic nh ch i Cú pháp: SHR Đích, CL (vớ sốlầ dị lớ hơ 1) i n ch n n SHR Đ ích, 1 hoặ SHR Đ c ích, sốlầ dị (80286 trởlên) n ch Thự hiệ dị phả đ c n: ch i ích CL bit Lệ này thay đ i cờSF, ZF, PF, CF mang giá trị a LSB nh ổ củ MSB LSB CF 0 Chú ý: Trong các lệ dị và quay, toán hạ không đ ợ là thanh ghi đ n nh ch ng ưc oạ
  • © DHBK 2005 71/Chapter2 Chư ng 2: Bộvi xửlý Intel 8088/8086 ơ• Cấ trúc bên trong u• Sơđ ồchân• Bả đ n ồbộnhớcủ máy tính IBM-PC a• Các chếđ ị chỉ a 8086 ộđa củ• Cách mã hoá lệ củ 8086 nh a• Mô tảtậ lệ củ 8086 p nh a  Các lệ di chuyể dữliệ nh n u  Các lệ sốhọ và logic nh c  Các lệ đ u khiể chư ng trình nh iề n ơ  Lệ nhả không đ u kiệ JMP nh y iề n:  Lệ nhả có đ u kiệ JE, JG, JGE, JL, JLE... nh y iề n  Lệ lặ LOOP nh p  Lệ gọ chư ng trình con CALL nh i ơ  Lệ gọ chư ng trình con phụ vụngắ INT và IRET nh i ơ c t• Cách đánh đa chỉ ị ởchếđộbả vệởcác máy tính từ80286 o
  • © DHBK 2005 72/Chapter2 Lệ nhả không đề kiệ JMP nh y i u n• Dùng đ ểnhả tớ mộ đa chỉ y i t ị trong bộnhớ• 3 loạ nhả ngắ gầ và xa i: y n, n Lệ nhả ngắ (short jump) nh y n Độdài lệ 2 bytes: nh E B Độlệch Phạ vi nhả -128 đ n 127 bytes so vớ lệ tiế theo lệ m y: ế i nh p nh JMP Thự hiệ IP=IP + đ ch c n: ộlệ Ví dụ: XOR BX, BX Nhan: MOV AX, 1 ADD AX, BX JMP SHORT Nhan
  • © DHBK 2005 73/Chapter2 Lệ nhả không đề kiệ JMP nh y i u n Lệ nhả gầ (near jump) nh y n Phạ vi nhả ± 32 Kbytes so vớ lệ tiế theo lệ JMP m y: i nh p nh Ví dụ: XOR BX, BX XOR CX, CX XOR CX, CX Nhan: MOV AX, 1 MOV AX, 1 MOV AX, 1 ADD AX, BX ADD AX, BX ADD AX, BX JMP NEAR Nhan JMP NEAR PTR BX JMP WORD PTR [BX]Thự hiệ IP=IP+ đ ch c n: ộlệ IP=BX IP=[BX+1] [BX] E 9 Đ lệ ộ chLo Đ lệ ộ chHi Nhả gián tiế y p
  • © DHBK 2005 74/Chapter2 Lệ nhả không đề kiệ JMP nh y i u n Lệ nhả xa (far jump) nh y Độdài lệ 5 bytes đ i vớ nhả tớ nhãn: nh ố i y i E A IP Lo IP Hi CS Lo CS Hi Phạ vi nhả nhả trong 1 đ n mã hoặ nhả sang đ n mã m y: y oạ c y oạ khác Ví dụ: EXTRN Nhan: FAR XOR CX, CX Next: MOV AX, 1 MOV AX, 1 ADD AX, BX ADD AX, BX JMP FAR PTR Next JMP DWORD PTR [BX] ........ JMP FAR Nhan IP = [BX+1][BX]Thự hiệ IP=IP củ nhãn c n: a CS= [BX+3][BX+2] CS=CS củ nhãn a
  • © DHBK 2005 75/Chapter2 Tóm tắ lệ JMP t nh FFFFFH Đ n mã 2 oạ Nhả xa y +127 Đ n mã 1 oạ Nhả ngắ y n JMP Nhả gầ y n -128 00000H
  • © DHBK 2005 76/Chapter2 Lệ nhả có đề kiệ nh y i u n• JE or JZ, JNE or JNZ, JG, JGE, JL, JLE (dùng cho sốcó dấ và JA, JB, JAE, JBE (dùng cho sốkhông u) dấ ... u)• Nhả đ ợ thự hiệ phụthuộ vào các cờ y ưc c n c• Là các lệ nhả ngắ nh y n• Ví dụ: Nhan1: XOR BX, BX Nhan2: MOV AX, 1 CMP AL, 10H Thự hiệ IP=IP + đ ch c n: ộdị JNE Nhan1 JE Nhan2
  • © DHBK 2005 77/Chapter2 Lệ lặ LOOP nh p• LOOP, LOOPE/LOOPZ, LOOPNE/LOOPNZ• Là lệ phố hợ giữ DEC CX và JNZ nh i p a XOR AL, AL XOR AL, AL XOR AL, AL MOV CX, 16 MOV CX, 16 MOV CX, 16 Lap: INC AL Lap: INC AL Lap: INC AL LOOP Lap CMP AL, 10 CMP AL, 10 LOOPE Lap LOOPNE Lap Lặ đ n khí CX=0 p ế Lặ đ n khí CX=0 p ế Lặ đ n khí CX=0 p ế hoặ AL<>10 c hoặ AL=10 c
  • © DHBK 2005 78/Chapter2 Lệ CALL nh• Dùng đ ểgọ chư ng trình con i ơ• Có 2 loạ CALL gầ và CALL xa i: n CALL gầ (near call): tư ng tựnhưnhả gầ n ơ y n Gọ chư ng trình con ởtrong cùng mộ đ n mã i ơ t oạ Tong PROC NEAR Tong PROC NEAR CALL WORD PTR [BX] ADD AX, BX ADD AX, BX ADD AX, CX ADD AX, CX RET Tong ENDP RET ... Tong ENDP MOV BX, OFFSET Tong CALL BX ... CALL Tong Cấ IP vào ngă xế t n p Cấ IP vào ngă xế t n p Cấ IP vào ngă xế t n p IP=IP + dị chuyể ch n IP= BX IP= [BX+1] [BX] RET: lấ IP từngă xế y n p RET: lấ IP từngă xế y n p RET: lấ IP từngă xế y n p
  • © DHBK 2005 79/Chapter2 Lệ CALL nh CALL xa (far call): tư ng tựnhưnhả xa ơ y Gọ chư ng trình con ởngoài đ n mã i ơ oạ Tong PROC FAR CALL DWORD PTR [BX] ADD AX, BX ADD AX, CX RET Tong ENDP ... CALL TongCấ CS vào ngă xế t n p Cấ CS vào ngă xế t n pCấ IP vào ngă xế t n p Cấ IP vào ngă xế t n pIP=IP củ Tong a IP = [BX+1][BX]CS =CS củ Tong a CS= [BX+3][BX+2]RET: lấ IP từngă xế y n p RET: lấ IP từngă xế y n plấ CS từngă xế y n p lấ CS từngă xế y n p
  • © DHBK 2005 80/Chapter2 Lệ ngắ INT và IRET nh t• INT gọ chư ng trình con phụ vụngắ (CTCPVN) i ơ c t• Bả vector ngắ 1 Kbytes 00000H đ n 003FF H ng t: ế 256 vector ngắ t 1 vector 4 bytes, chứ IP và CS củ CTCPVN a a 32 vector đ u dành riêng cho Intel ầ 224 vector sau dành cho ngư i dùng ờ• Cú pháp: INT Number• Ví dụ INT 21H gọ CTCPVN củ DOS : i a
  • © DHBK 2005 81/Chapter2 Lệ ngắ INT và IRET nh t• Thự hiệ INT: c n Cấ thanh ghi cờvào ngă xế t n p IF=0 (cấ các ngắ khác tác đ ng), TF=0 (chạ suố m t ộ y t) Cấ CS vào ngă xế t n p Cấ IP vào ngă xế t n p IP=[N*4], CS=[N*4+2]• Gặ IRET: p Lấ IP từngă xế y n p Lấ CS từngă xế y n p Lấ thanh ghi cờtừngă xế y n p
  • © DHBK 2005 82/Chapter2 Chư ng 2: Bộvi xửlý Intel 8088/8086 ơ• Cấ trúc bên trong u• Sơđ ồchân• Bả đ n ồbộnhớcủ máy tính IBM-PC a• Các chếđ ị chỉ a 8086 ộđa củ• Cách mã hoá lệ củ 8086 nh a• Mô tảtậ lệ củ 8086 p nh a• Cách đánh đa chỉ ị ởchếđộbả vệởcác máy tính từ o 80286
  • © DHBK 2005 83/Chapter2 Đánh đa chỉ ộnhớởchếđ bả vệ ị b ộ o• Cho phép truy cậ dữliệ và chư ng trình ởvùng p u ơ nhớtrên 1M• Thanh ghi lệ chứ đa chỉ ch ch a ị lệ• Thanh ghi đ n chứ từchọ đ n (segment oạ a n oạ selector) từchọ đ n chọ 1 phầ tửtrong 1 trong 2 bả mô tả n oạ n n ng đ n (descriptor table), mồ bả có kích thư c 64 KB oạ i ng ớ Bả mô tảđ n toàn cụ (Global DT): chứ thông tin vềcác ng oạ c a đ n củ bộnhớmà tấ cảcác chư ng trình có thểtruy nhậ oạ a t ơ p Bả mô tảđ n cụ bộ(Local DT): chứ thông tin vềcác đ n ng oạ c a oạ củ 1 chư ng trình a ơ Mô tảđ n chứ thông tin vềđa chỉ t đ u củ đ n oạ a ị bắ ầ a oạ
  • © DHBK 2005 84/Chapter2 Đánh đa chỉ ộnhớởchếđ bả vệ ị b ộ o 15 2 1 0 Index TI RPL RPL: mứ ư tiên yêu cầ 00 cao nhấ 11 thấ nhấ c u u, t, p t TI=0, sửdụ bả toàn cụ TI=1 sửdụ bả cụ bộ ng ng c, ng ng c Index: 13 bit chỉ đ chọ 1 trong 8K mô tả oạ trong bả mô tả oạ số ể n đ n ng đ n Limit 7 7 GDOA 00000000 00000000 6 Base(B31-B24) V (L19-L16) 6 5 Access rights Base(B23-B16) 4 5 Access rights Base(B23-B16) 4 3 Base(B15-B0) 2 3 Base(B15-B0) 2 1 Limit(L15-L0) 0 1 Limit(L15-L0) 0 mô tảđ n củ 80286 oạ a mô tảđ n từ80386 oạ Base: xác đnh đa chỉ t đ u củ đ n ị ị bắ ầ a oạ Limit: giớ hạ kích thư c tố đ củ đ n i n ớ i a a oạ
  • © DHBK 2005 85/Chapter2 Đánh đa chỉ ộnhớởchếđ bả vệ ị b ộ o• 80286  Base 24 bit: 000000H đ n FFFFFFH (16 MB) ế  Limit 16 bit: kích thư c đ n: từ1 đ n 64 KB ớ oạ ế  Đa chỉ t lý= Base + đ ch ị vậ ộlệ  1 chư ng trình có thếsửdụ tố đ 2*8K*64 K= 1GB bộ ơ ng i a: nhớ=> bộnhớả (virtual memory) o• 80386/486/Pentium  Base 32 bit: 00000000H đ n FFFFFFFFH (4 GB) ế  Limit 20 bit:  G=0: kích thư c đ n: từ1 đ n 1MB ớ oạ ế  G=1: kích thư c đ n từ4K đ n 4 GB ớ oạ ế  Đa chỉ t lý= Base + đ ch ị vậ ộlệ  1 chư ng trình có thếsửdụ tố đ 2*8K*4 GB= 64 ơ ng i a: Terabytes bộnhớ
  • © DHBK 2005 1/Chapter3 Nộ dung môn họ i c1. Giớ thiệ chung vềhệvi xửlý i u2. Bộvi xửlý Intel 8088/80863. Lậ trình hợ ngữcho 8086 p p4. Tổchứ vào ra dữliệ c u5. Ngắ và xửlý ngắ t t6. Truy cậ bộnhớtrự tiế DMA p c p7. Các bộvi xửlý trên thự tế c
  • © DHBK 2005 2/Chapter3 Chư ng 3 Lậ trình h ợ ngữvớ 8086 ơ p p i• Giớ thiệ khung củ chư ng trình hợ ngữ i u a ơ p• Cách tạ và chạ mộ chư ng trình hợ ngữtrên o y t ơ p máy IBM PC• Các cấ trúc lậ trình cơbả thự hiệ bằ hợ u p n c n ng p ngữ• Mộ sốchư ng trình cụthể t ơ
  • © DHBK 2005 3/Chapter3 Chư ng 3 Lậ trình h ợ ngữvớ 8086 ơ p p i• Giớ thiệ khung củ chư ng trình hợ ngữ i u a ơ p  Cú pháp củ chư ng trình hợ ngữ a ơ p  Dữliệ cho chư ng trình u ơ  Biế và hằ n ng  Khung củ mộ chư ng trình hợ ngữ a t ơ p• Cách tạ và chạ mộ chư ng trình hợ ngữtrên o y t ơ p máy IBM PC• Các cấ trúc lậ trình cơbả thự hiệ bằ hợ u p n c n ng p ngữ• Mộ sốchư ng trình cụthể t ơ
  • © DHBK 2005 4/Chapter3 Chư ng 3 Lậ trình h ợ ngữvớ 8086 ơ p p i• Giớ thiệ khung củ chư ng trình hợ ngữ i u a ơ p  Cú pháp củ chư ng trình hợ ngữ a ơ p  Dữliệ cho chư ng trình u ơ  Biế và hằ n ng  Khung củ mộ chư ng trình hợ ngữ a t ơ p• Cách tạ và chạ mộ chư ng trình hợ ngữtrên o y t ơ p máy IBM PC• Các cấ trúc lậ trình cơbả thự hiệ bằ hợ u p n c n ng p ngữ• Mộ sốchư ng trình cụthể t ơ
  • © DHBK 2005 5/Chapter3 Cú pháp củ chư ng trình h ợ ngữ a ơ p1. .Model Small ớ khai báo kiể kích thư c bộ u nhớ2. .Stack 100 khai báo đ n ngă xế oạ n p3. .Data4.5. Tbao DB ‘Chuoi da sap xep:’, 10, 13 MGB DB ‘a’, ‘Y’, ‘G’, ‘T’, ‘y’, ‘Z’, ‘U’, ‘B’, ‘D’, ‘E’, khai báo đ n dữliệ oạ u6. DB ‘$’7. .Code8. MAIN Proc khai báo đ n mã lệ oạ nh9. MOV AX, @Data ;khoi dau DS10.11. MOV DS, AX MOV BX, 10 ;BX: so phan tu cua mang bắ đ u chư ng trình chính t ầ ơ12. LEA DX, MGB ;DX chi vao dau mang byte13. DEC BX ;so vong so sanh phai lam14. LAP: MOV SI, DX ; SI chi vao dau mang15. MOV CX, BX ; CX so lan so cua vong so16. MOV DI, SI ;gia su ptu dau la max chú thích bắ đ u t ầ17. MOV AL, [DI] ;AL chua phan tu max18. TIMMAX:19. INC SI ;chi vao phan tu ben canh20. CMP [SI], AL ; phan tu moi > max? bằ dấ ; ng u21. JNG TIEP ;khong, tim max22. MOV DI, SI ; dung, DI chi vao max23. MOV AL, [DI] ;AL chua phan tu max24. TIEP: LOOP TIMMAX ;tim max cua mot vong so25. CALL DOICHO ;doi cho max voi so moi26. DEC BX ;so vong so con lai27. JNZ LAP ;lam tiep vong so moi28. MOV AH, 9 ; hien thi chuoi da sap xep29. MOV DX, Tbao30. INT 21H31. MOV AH, 4CH ;ve DOS32. INT 21H33. MAIN Endp34.35. DOICHO Proc PUSH AX ơ kế thúc chư ng trình chính t36. MOV AL, [SI]37. XCHG AL, [DI]38.39. MOV POP [SI], AL AX bắ đ u chư ng trình con t ầ ơ40. RET41.42. DOICHO Endp END MAIN kế thúc đ n mã t oạ
  • © DHBK 2005 6/Chapter3 Cú pháp củ chư ng trình h ợ ngữ a ơ p• Tên Mã lệ nh Các toán hạng ; chú giải• Chư ng trình dị không phân biệ chữhoa, chữ ơ ch t thư ng ờ• Trư ng tên: ờ chứ các nhãn, tên biế tên thủtụ a n, c độdài: 1 đ n 31 ký tự ế tên không đ ợ có dấ cách, không bắ đ u bằ số ưc u t ầ ng đ ợ dùng các ký tựđ c biệ ? . @ _ $ % ưc ặ t: dấ . phả đ ợ đ t ởvị đ u tiên nế sửdụ u i ưc ặ trí ầ u ng Nhãn kế thúc bằ dấ : t ng u TWO_WORD ?1 two-word .@? 1word Let’s_go
  • © DHBK 2005 7/Chapter3 Chư ng 3 Lậ trình h ợ ngữvớ 8086 ơ p p i• Giớ thiệ khung củ chư ng trình hợ ngữ i u a ơ p  Cú pháp củ chư ng trình hợ ngữ a ơ p  Dữliệ cho chư ng trình u ơ  Biế và hằ n ng  Khung củ mộ chư ng trình hợ ngữ a t ơ p• Cách tạ và chạ mộ chư ng trình hợ ngữtrên o y t ơ p máy IBM PC• Các cấ trúc lậ trình cơbả thự hiệ bằ hợ u p n c n ng p ngữ• Mộ sốchư ng trình cụthể t ơ
  • © DHBK 2005 8/Chapter3 Dữliệ cho chư ng trình u ơ• Dữliệu: các sốhệsố2: 0011B hệsố10: 1234 hệsố16: 1EF1H, 0ABBAH Ký tự chuỗ ký tự ‘A’, ‘abcd’ , i :
  • © DHBK 2005 9/Chapter3 Chư ng 3 Lậ trình h ợ ngữvớ 8086 ơ p p i• Giớ thiệ khung củ chư ng trình hợ ngữ i u a ơ p  Cú pháp củ chư ng trình hợ ngữ a ơ p  Dữliệ cho chư ng trình u ơ  Biế và hằ n ng  Khung củ mộ chư ng trình hợ ngữ a t ơ p• Cách tạ và chạ mộ chư ng trình hợ ngữtrên o y t ơ p máy IBM PC• Các cấ trúc lậ trình cơbả thự hiệ bằ hợ u p n c n ng p ngữ• Mộ sốchư ng trình cụthể t ơ
  • © DHBK 2005 10/Chapter3 Biế và hằ n ng• DB (define byte): đnh nghĩ biế kiể byte ị a n u• DW (define word): đnh nghĩ biế kiể từ ị a n u• DD (define double word): đnh nghĩ biế kiể từkép ị a n u• Biế byte: n  Tên DB gia_trị _khở đ u i ầ Ví dụ: MOV AL, B1 B1 DB 4 B1 DB ? LEA BX, B1 C1 DB ‘$’ MOV AL, [BX] C1 DB 34
  • © DHBK 2005 11/Chapter3 Biế và hằ n ng• Biế từ n :  Tên DW gia_trị _khở đ u i ầ 1300A 13009 Ví dụ: 13008 9 W1 DW 4 13007 8 W2 DW ? 13006 7• Biế mả n ng: 13005 6 13004 5 M1 DB 4, 5, 6, 7, 8, 9 13003 4 M1 13002 M2 DB 100 DUP(0) 13001 M3 DB 100 DUP(?) 13000 M4 DB 4, 3, 2, 2 DUP (1, 2 DUP(5), 6) M4 DB 4, 3, 2, 1, 5, 5, 6, 1, 5, 5, 6
  • © DHBK 2005 12/Chapter3 Biế và hằ n ng• Biế mả 2 chiề n ng u: 1300A 1 6 3 13009 4 2 5 13008 5 13007 2 13006 4 13005 3 M1 DB 1, 6, 3 13004 6 DB 4, 2, 5 13003 1 M1 13002 13001 13000 M2 DB 1, 4 DB 6, 2 MOV AL, M1 ; copy 1 vao AL MOV AH, M1[2] DB 3, 5 MOV BX, 1 MOV SI, 1 MOV CL, M1[BX+SI] MOV AX, Word Ptr M1[BX+SI+2] MOV DL, M1[BX][SI]
  • © DHBK 2005 13/Chapter3 Biế và hằ n ng• Biế kiể xâu ký tự n u STR1 DB ‘string’ STR2 DB 73h, 74h, 72h, 69h, 6Eh, 67h STR3 DB 73h, 74h, ‘r’, ‘i’, 6Eh, 67h• Hằ có tên ng Có thểkhai báo hằ ởtrong chư ng trình ng ơ Thư ng đ ợ khai báo ởđ n dữliệ ờ ưc oạ u Ví dụ: CR EQU 0Dh ;CR là carriage return LF EQU 0Ah ; LF là line feed CHAO EQU ‘Hello’ MSG DB CHAO, ‘$’
  • © DHBK 2005 14/Chapter3 Chư ng 3 Lậ trình h ợ ngữvớ 8086 ơ p p i• Giớ thiệ khung củ chư ng trình hợ ngữ i u a ơ p  Cú pháp củ chư ng trình hợ ngữ a ơ p  Dữliệ cho chư ng trình u ơ  Biế và hằ n ng  Khung củ mộ chư ng trình hợ ngữ a t ơ p• Cách tạ và chạ mộ chư ng trình hợ ngữtrên o y t ơ p máy IBM PC• Các cấ trúc lậ trình cơbả thự hiệ bằ hợ u p n c n ng p ngữ• Mộ sốchư ng trình cụthể t ơ
  • © DHBK 2005 15/Chapter3 Khung củ chư ng trình hợ ngữ a ơ p• Khai báo quy mô sửdụ bộnhớ ng  .MODEL Kiể kích thuớ bộnhớ u c  Ví dụ .Model Small : Kiể u Mô tả Tiny (hẹ p) mã lệ và dữliệ gói gọ trong mộ đ n nh u n t oạ Small (nhỏ) mã lệ nằ trong 1 đ n, dữliệ 1 đ n nh m oạ u oạ Medium (tB) mã lệ nằ trong nhiề đ n, dữliệ 1 đ n nh m u oạ u oạ Compact (gọn) mã lệ nằ trong 1 đ n, dữliệ trong nhiể đ n nh m oạ u u oạ Large (lớn) mã lệ nằ trong nhiề đ n, dữliệ trong nhiề đ n, không nh m u oạ u u oạ có mả nào lớ hơ 64 K ng n n ồ ) Huge (đ sộ mã lệ nằ trong nhiề đ n, dữliệ trong nhiề đ n, các nh m u oạ u u oạ mả có thể n hơ 64 K ng lớ n
  • © DHBK 2005 16/Chapter3 Khung củ chư ng trình hợ ngữ a ơ p• Khai báo đ n ngă xế oạ n p  .Stack kích thuớ (bytes) c  Ví dụ:  .Stack 100 ; khai báo stack có kích thư c 100 bytes ớ  Giá trị m đnh 1KB ngầ ị• Khai báo đ n dữliệ oạ u:  .Data  Khai báo các biế và hằ n ng• Khai báo đ n mã oạ  .Code
  • © DHBK 2005 17/Chapter3 Khung củ chư ng trình hợ ngữ a ơ p Stack SS chư ng trình ơ chư ng trình ơ CS DS 100h ES 100h PSP PSP .COM . EXE
  • © DHBK 2005 18/Chapter3 Khung củ chư ng trình hợ ngữ a ơ p• Khung củ chư ng trình hợ ngữđ ch ra file .EXE a ơ p ểdị .Model Small .Stack 100 .Data ;các đnh nghĩcho biế và hằ ị a n ng .Code MAIN Proc ;khớ đ u cho DS i ầ MOV AX, @data MOV DS, AX ơ ;các lệ củ chư ng trình nh a ;trở DOS dùng hàm 4CH củ INT 21H về a MOV AH, 4CH INT 21H MAIN Endp ơ ;các chư ng trình con nế có u END MAIN
  • © DHBK 2005 19/Chapter3 Khung củ chư ng trình hợ ngữ a ơ p• Chư ng trình Hello.EXE ơ .Model Small .Stack 100 .Data CRLF DB 13,10,’$’ MSG DB ‘Hello! $’ .Code MAIN Proc ;khớ đ u cho DS i ầ MOV AX, @data MOV DS, AX ;về ầ dòng mớ dùng hàm 9 củ INT 21H đu i a MOV AH,9 LEA DX, CRLF INT 21H ;Hiể thị i chào dùng hàm 9 củ INT 21H n lờ a MOV AH,9 LEA DX, MSG INT 21H ;về ầ dòng mớ dùng hàm 9 củ INT 21H đu i a MOV AH,9 LEA DX, CRLF INT 21H ;trởvềDOS dùng hàm 4CH củ INT 21H a MOV AH, 4CH INT 21H MAIN Endp END MAIN
  • © DHBK 2005 20/Chapter3 Khung củ chư ng trình hợ ngữ a ơ p• Khung củ chư ng trình hợ ngữđ ch ra file .COM a ơ p ểdị .Model Tiny .Code ORG 100h START: JMP CONTINUE ;các đnh nghĩcho biế và hằ ị a n ng CONTINUE: MAIN Proc ơ ;các lệ củ chư ng trình nh a INT 20H ;trở DOS về MAIN Endp ơ ;các chư ng trình con nế có u END START
  • © DHBK 2005 21/Chapter3 Khung củ chư ng trình hợ ngữ a ơ p FFFFH SP Chiề tiế củ ngă xế u n a n p Chiề tiế củ mã và dữliệ u n a u CONTINUE: Dữliệ u 0100H JMP CONTINUE IP Đ n đ u chư ng trình oạ ầ ơ 0000H Program segment prefix
  • © DHBK 2005 22/Chapter3 Khung củ chư ng trình hợ ngữ a ơ p• Chư ng trình Hello.COM ơ .Model Tiny .Code ORG 100H START: JMP CONTINUE CRLF DB 13,10,’$’ MSG DB ‘Hello! $’ CONTINUE: MAIN Proc ;về ầ dòng mớ dùng hàm 9 củ INT 21H đu i a MOV AH,9 LEA DX, CRLF INT 21H ;Hiể thị i chào dùng hàm 9 củ INT 21H n lờ a MOV AH,9 LEA DX, MSG INT 21H ;về ầ dòng mớ dùng hàm 9 củ INT 21H đu i a MOV AH,9 LEA DX, CRLF INT 21H ;trởvềDOS INT 20H MAIN Endp END START
  • © DHBK 2005 23/Chapter3 Chư ng 3 Lậ trình h ợ ngữvớ 8086 ơ p p i• Giớ thiệ khung củ chư ng trình hợ ngữ i u a ơ p• Cách tạ và chạ mộ chư ng trình hợ ngữtrên o y t ơ p máy IBM PC• Các cấ trúc lậ trình cơbả thự hiệ bằ hợ u p n c n ng p ngữ• Mộ sốchư ng trình cụthể t ơ
  • © DHBK 2005 24/Chapter3 Cách tạ mộ chư ng trình hợ ngữ o t ơ p o p n n a ơ Tạ ra tệ vă bả củ chư ng trình *.asm Dùng MASM đ dị ra mã máy ể ch *.obj Dùng LINK đ nố tệ . obj thành ể i p *.exe không Dị đ ợ ra .com? ch ư c Dùng exe2bin đ dị *.exe thành ể ch *.com ơ chạ chư ng trình y
  • © DHBK 2005 25/Chapter3 Chư ng 3 Lậ trình h ợ ngữvớ 8086 ơ p p i• Giớ thiệ khung củ chư ng trình hợ ngữ i u a ơ p• Cách tạ và chạ mộ chư ng trình hợ ngữtrên o y t ơ p máy IBM PC• Các cấ trúc lậ trình cơbả thự hiệ bằ hợ u p n c n ng p ngữ  Cấ trúc lự chọ u a n  Cấ trúc lặ u p• Mộ sốchư ng trình cụthể t ơ
  • © DHBK 2005 26/Chapter3 Cấ trúc lự chọ If-then u a n• If đ u_kiệ then công_việ iề n c• Ví dụ Gán cho BX giá trị : tuyệ đ i củ AX t ố a ; If AX<0 CMP AX, 0 ; AX<0 ? JNL End_if ; không, thoát ra ; then NEG AX ; đúng, đ o dấ ả u End_if: MOV BX, AX ;gán
  • © DHBK 2005 27/Chapter3 Cấ trú c lự chọ If-then-else u a n• If đ u_kiệ then công_việ else công_việ iề n c1 c2• Ví dụ if AX<BX then CX=0 else CX=1 : ; if AX<BX CMP AX, BX ; AX<BX ? JL Then_ ; đúng, CX=0 ;else MOV CX, 1 ; sai, CX=1 JMP End_if Then_: MOV CX, 0; End_if:
  • © DHBK 2005 28/Chapter3 Cấ trúc lự chọ case u a n• Case Biể thứ u c Giá trị công việ 1 1: c Giá trị công việ 2 2: c ... Giá trị công việ N N: c END CASE CMP AX, 0 ;• Ví dụ: JL AM ; AX<0 JE Khong ; AX=0 Nế AX<0 thì CX=-1 u JG DUONG; AX>0 Nế AX=0 thì CX=0 u AM: MOV CX, -1 Nế AX>0 thì CX=1 u JMP End_case Khong: MOV CX, 0 JMP End_case DUONG: MOV CX, 1 End_case:
  • © DHBK 2005 29/Chapter3 Cấ trúc lặ FOR-DO u p• For sốlầ lặ Do công việ n p c khở tạ bộ ế i o đm ví dụ Hiể thị t dòng ký tự$ trên màn hình : n mộ công việ c MOV CX, 80 ;số n lặ lầ p MOV AH,2 ;hàm hiể thị n giả bộ ế đ 1 m đm i MOV DL,’$’ ;DL chứ ký tựcầ hiể thị a n n HIEN: INT 21H ; Hiể thị n LOOP HIEN End_for S bộ ế đm=0? Đ
  • © DHBK 2005 30/Chapter3 Cấ trúc lặ While-DO u p• While đ u kiệ Do công việ iề n c ví dụ đ m sốký tựđ c đ ợ từbàn phím, : ế ọ ưc S khi gặ ký tựCR thì thôi p Đ u kiệ iề n XOR CX, CX ;CX=0 Đ MOV AH,1 ;hàm đ c ký tựtừbàn phím ọ TIEP: INT 21H ; đ c mộ ký tựvào AL ọ t CMP AL, 13 ; đ c CR? ọ công việ c JE End_while ;đ úng, thoát INC CX ; sai, thêm 1 ký tựvào tổng JMP TIEP ; đ c tiế ọ p End_while:
  • © DHBK 2005 31/Chapter3 Cấ trúc lặ Repeat-until u p• Repeat công việ until đ u kiệ c iề n ví dụ đ c từbàn phím cho tớ khi gặ ký tựCR thì thôi : ọ i p công việ c MOV AH,1 ;hàm đ c ký tựtừbàn phím ọ TIEP: INT 21H ; đ c mộ ký tựvào AL ọ t CMP AL, 13 ; đ c CR? ọ Đ u kiệ iề n JNE TIEP ; chư đ c tiế a, ọ p End_: Đ S
  • © DHBK 2005 32/Chapter3 Chư ng 3 Lậ trình h ợ ngữvớ 8086 ơ p p i• Giớ thiệ khung củ chư ng trình hợ ngữ i u a ơ p• Cách tạ và chạ mộ chư ng trình hợ ngữtrên o y t ơ p máy IBM PC• Các cấ trúc lậ trình cơbả thự hiệ bằ hợ u p n c n ng p ngữ• Mộ sốchư ng trình cụthể t ơ
  • © DHBK 2005 33/Chapter3 Xuấ nhậ dữliệ t p u• 2 cách:  Dùng lệ IN, OUT đ nh ểtrao đ i vớ các thiế bị ổ i t ngoạ vi i  phứ tạ vì phả biế đa chỉ ng ghép nố thiế bị c p i t ị cổ i t  Các hệthố khác nhau có đa chỉ ng ị khác nhau  Dùng các chư ng trình con phụ vụngắ củ DOS và BIOS ơ c t a  đ n giả dễsửdụ ơ n, ng  không phụthuộ vào hệthố c ng• Ngắ 21h củ DOS: t a  Hàm 1: đ c 1 ký tựtừbàn phím ọ  Vào: AH=1  Ra: AL=mã ASCII củ ký tự AL=0 khi ký tựlà phím chứ nă a , c ng  Hàm 2: hiệ 1 ký tựlên màn hình n  Vào: AH=2 DL=mã ASCII củ ký tựcầ hiể thị a n n  Hàm 9: hiệ chuỗ ký tựvớ $ ởcuố lên màn hình n i i i  Vào: AH=9 DX=đa chỉ ch củ chuỗ ký tựcầ hiẻ thị ị lệ a i n n  Hàm 4CH: kế thúc chư ng trình loạ .exe t ơ i  Vào: AH=4CH
  • © DHBK 2005 34/Chapter3 Mộ sốchư ng trình cụthể t ơ• Ví dụ1: Lậ chư ng trình yêu cầ ngư i sửdụ gõ vào mộ p ơ u ờ ng t chữcái thư ng và hiể thị ng chữhoa và mã ASCII dư i ờ n dạ ớ dạ nhị ng phân củ chữcái đ lên màn hình a ó  Ví dụ:  Hay nhap vao mot chu cai thuong: a  Mã ASCII dư i dạ nhị ớ ng phân củ a la: 11000001 a  Dang chu hoa cua a la: A  Giải:• Ví dụ2: Đ c từbàn phím mộ sốhệhai (dài nhấ là 16 bit), kế ọ t t t quảđ c đ ợ đ ọ ư c ểtạ thanh ghi BX. Sau đ hiệ nộ dung thanh i ó n i ghi BX ra màn hình.  Giải:• Ví dụ3: Nhậ mộ dãy số8 bit ởdạ thậ phân, các sốcách p t ng p nhau bằ 1 dấ cách và kế thúc bằ phím Enter. Sắ xế ng u t ng p p dãy sốtheo thứtựtă dầ và in dãy sốđ sắ xế ra màn ng n ã p p hình.  Giải:
  • © DHBK 2005 35/Chapter3 Mộ sốchư ng trình cụthể t ơ• Ví dụ4: Viế chư ng trình cho phép nhậ vào kích t ơ p thư c M*N và các phầ tửcủ mộ mả 2 chiề ớ n a t ng u gồ các sốthậ phân 8 bit. m p Tìm sốlớ nhấ và nhỏnhấ củ mả n t t a ng, in ra màn hình Tính tổ các phầ tửcủ mả và in ra màn hình ng n a ng Chuyể thành mả N*M và in mả mớ ra màn hình n ng ng i Hãy nhậ giá trị p M= Hãy nhậ giá trị p N= Nhậ phầ tử[1,1]= p n Nhậ phầ tử[1,2] p n ...... Giải: Số n nhấ là phầ tử[3,4]=15 lớ t n Sốnhỏ t là phầ tử[1,2]=2 nhấ n Tổng=256 ...
  • © DHBK 2005 1/Chapter4 Nội dung môn học1. Giới thiệu chung về hệ vi xử lý2. Bộ vi xử lý Intel 8088/80863. Lập trình hợp ngữ cho 80864. Tổ chức vào ra dữ liệu5. Ngắt và xử lý ngắt6. Truy cập bộ nhớ trực tiếp DMA7. Các bộ vi xử lý trên thực tế
  • © DHBK 2005 2/Chapter4 Chương 4: Tổ chức vào ra dữ liệu• Các tín hiệu của 8086 và các mạch phụ trợ 8284, 8288• Ghép nối 8088 với bộ nhớ• Ghép nối 8086 với bộ nhớ• Ghép nối với thiết bị ngoại vi
  • © DHBK 2005 3/Chapter4 Chương 4: Tổ chức vào ra dữ liệu• Các tín hiệu của 8086 và các mạch phụ trợ 8284, 8288 Các tín hiệu của 8086 Phân kênh và việc đệm cho các bus Mạch tạo xung nhịp 8284 và mạch điều khiển bus 8288 Biểu đồ thời gian của các lệnh ghi/đọc• Ghép nối 8088 với bộ nhớ• Ghép nối 8086 với bộ nhớ• Ghép nối với thiết bị ngoại vi
  • © DHBK 2005 4/Chapter4 Chương 4: Tổ chức vào ra dữ liệu• Các tín hiệu của 8086 và các mạch phụ trợ 8284, 8288 Các tín hiệu của 8086 Phân kênh và việc đệm cho các bus Mạch tạo xung nhịp 8284 và mạch điều khiển bus 8288 Biểu đồ thời gian của các lệnh ghi/đọc• Ghép nối 8088 với bộ nhớ• Ghép nối 8086 với bộ nhớ• Ghép nối với thiết bị ngoại vi
  • © DHBK 2005 5/Chapter4 Các chân tín hiệu của 8086 M/IO (S2) 16 đường AD0-AD15 địa chỉ thấp/dữ liệu DT/R(S1) RD A16/S3 Tín hiệu điều khiển hệ thống WR (LOCK) A17/S4 DEN (S0) 4 đường A18/S5 bus C/ địa chỉ cao SS0 A19/S6 READY BHE/S7 NMI 8086 INTR Tín hiệu điều HOLD(RQ/GT0) RESET khiển CPU HLDA(RQ/GT1) MN/MX Tín hiệu điều INTA(QS1) khiển bus TEST CLK ALE(QS0) đồng hồ Vcc và nguồn GND GND
  • © DHBK 2005 6/Chapter4 Các chân tín hiệu của 8086• AD0-AD15: ALE =1: 16 chân địa chỉ cho bộ nhớ hoặc I/O ALE=0: 16 đường dữ liệu• A19/S6-A16/S3 4 bit địa chỉ cao S4 S3 4 bit trạng thái: S6 luôn bằng 1 0 0 ES S5: trạng thái của IF 0 1 SS S4, S3: bit trạng thái về thanh ghi đoạn đang truy cập 1 0 CS or No 1 1 DS• READY: input pin, 0 => vi xử lý vào trạng thái đợi 1: has no effect• INTR: interrupt request IF=1 và INTR=1=> cho phép ngắt• TEST nếu =0, CPU ở trạng thái đợi và thực hiện lệnh NOP =1, lệnh WAIT đợi đến khi TEST=0
  • © DHBK 2005 7/Chapter4 Các chân tín hiệu của 8086• NMI (Non-maskable interrupt) NMI=1 => thực hiện INT 2• RESET 1: khởi động lại hệ thống và thực hiện lệnh tại ô nhớ FFFF0H• MN/MX 1: chế độ min 0: chế độ max• BHE/S7: 0: cho phép truy cập byte cao dữ liệu Trạng thái S7 luôn bằng 1• RD 0: CPU đọc dữ liệu từ bộ nhớ hoặc thiết bị ngoại vi• Các chân ở chế độ min M/IO 1: truy cập bộ nhớ 0: truy cập thiết bị ngoại vi I/O WR 0: dữ liệu hợp lệ tại bus dữ liệu để đưa ra bộ nhớ hoặc thiết bị ngoại vi
  • © DHBK 2005 8/Chapter4 Các chân tín hiệu của 8086• Các chân ở chế độ min INTA: interrupt acknowledge 0: khi INTR=1 và IF=1 ALE: address latch enable DT/R: data transmit/receive 1: bus dữ liệu đang truyền dữ liệu đi 0: bus dữ liệu đang nhận dữ liệu DEN: Data enable 0: kích hoạt đệm dữ liệu ngoài HOLD 1: CPU tạm dừng hoạt động để nhường quyền điều khiển cho DMA, các bus được đặt ở trạng thái trở kháng cao HLDA (Hold Acknowledge) khi HOLD=1, HLDA=1
  • © DHBK 2005 9/Chapter4 Các chân tín hiệu của 8086• Các chân ở chế độ Max S2, S1, S0 ghép nối với điều khiển bus 8288 S2 S1 S0 chu kỳ điều khiển của bus 0 0 0 chấp nhận yêu cầu ngắt 0 0 1 đọc thiết bị ngoại vi 0 1 0 Ghi thiết bị ngoại vi 0 1 1 Dừng 1 0 0 đọc mã lệnh 1 0 1 đọc bộ nhớ 1 1 0 ghi bộ nhớ 1 1 1 bus rỗi
  • © DHBK 2005 10/Chapter4 Các chân tín hiệu của 8086• Các chân ở chế độ Max RQ/GT0 và RQ/GT1: Request/Grant Tín hiệu yêu cầu dùng bus của các bộ vi xử lý khác/chấp nhận treo bus của CPU GT0 có mức ưu tiên cao hơn GT1 LOCK 0: cấm các bộ vi xử lý khác dùng bus QS0 và QS1: trạng thái của hàng đợi lệnh QS1 QS0 Trạng thái hàng đợi lệnh 0 0 không hoạt động 0 1 đọc byte mã lệnh đầu tiên 1 0 hàng đợi rỗng 1 1 đọc byte tiếp theo
  • © DHBK 2005 11/Chapter4 Chương 4: Tổ chức vào ra dữ liệu• Các tín hiệu của 8086 và các mạch phụ trợ 8284, 8288 Các tín hiệu của 8086 Phân kênh và việc đệm cho các bus Mạch tạo xung nhịp 8284 và mạch điều khiển bus 8288 Biểu đồ thời gian của các lệnh ghi/đọc• Ghép nối 8088 với bộ nhớ• Ghép nối 8086 với bộ nhớ• Ghép nối với thiết bị ngoại vi
  • © DHBK 2005 12/Chapter4 Phân kênh và đệm cho các bus• Vì sao phải phân kênh và khuyếch đại đệm: Các bus địa chỉ và dữ liệu dùng chung chân Nâng cao khả năng tải của bus• Các vi mạch phân kênh và đệm: 74LS373: phân kênh 74LS245: đệm dữ liệu 2 chiều 74LS244: đệm 3 trạng thái theo 1 chiều
  • © DHBK 2005 13/Chapter4 Phân kênh và đệm cho các bus M/IO M/I RD ‘244 RD WR WR BHE/S7 BH A19/S6 74LS373 A19 A16/S3 G A16 A15 A8 A7 8086 A0 ALE G G 74LS373 74LS373 AD15 D15 ‘245 AD8 G DIR D8 AD7 D7 ‘245 AD0 G DIR D0 DEN DT/R
  • © DHBK 2005 14/Chapter4 Chương 4: Tổ chức vào ra dữ liệu• Các tín hiệu của 8086 và các mạch phụ trợ 8284, 8288 Các tín hiệu của 8086 Phân kênh và việc đệm cho các bus Mạch tạo xung nhịp 8284 và mạch điều khiển bus 8288 Biểu đồ thời gian của các lệnh ghi/đọc• Ghép nối 8088 với bộ nhớ• Ghép nối 8086 với bộ nhớ• Ghép nối với thiết bị ngoại vi
  • Mạch tạo xung nhịp 8284 và mạch© DHBK 2005 15/Chapter4 điều khiển bus 8288
  • © DHBK 2005 16/Chapter4 Chương 4: Tổ chức vào ra dữ liệu• Các tín hiệu của 8086 và các mạch phụ trợ 8284, 8288 Các tín hiệu của 8086 Phân kênh và việc đệm cho các bus Mạch tạo xung nhịp 8284 và mạch điều khiển bus 8288 Biểu đồ thời gian của các lệnh ghi/đọc• Ghép nối 8088 với bộ nhớ• Ghép nối 8086 với bộ nhớ• Ghép nối với thiết bị ngoại vi
  • © DHBK 2005 17/Chapter4 Biểu đồ thời gian
  • © DHBK 2005 18/Chapter4 Biểu đồ thời gian• Các ký hiệu trong biểu đồ thời gian: Min max Units CS 1 CS hold time 60 ns 1 2 CS to data 30 ns Data valid 3 Data hold time 5 10 ns 2 3
  • © DHBK 2005 19/Chapter4 Biểu đồ thời gian• Một chu kỳ ghi/đọc của CPU (chu kỳ bus): 4 chu kỳ xung nhịp T 5 MHz: 4*200 ns=800 ns T1: CPU đưa ra địa chỉ của bộ nhớ hoặc I/O, DT/R, M/IO, ALE T2: CPU đưa ra RD hoặc WR, DEN và dữ liệu trên D0-D15 nếu là lệnh ghi CPU đọc tín hiệu READY tại cuối chu kỳ của T2 để xử lý trong chu kỳ tiếp theo khi nó làm việc với bộ nhớ hay I/O chậm T3: Nếu READY=0 => T3 trở thành chu kỳ đợi: Tw=n*T Tại cuối T3, CPU sẽ đọc dữ liệu nếu là lệnh đọc dữ liệu T4: Các tín hiệu trên bus được giải phóng WR chuyển từ 0 lên 1 kích hoạt quá trình ghi của bộ nhớ
  • © DHBK 2005 20/Chapter4 Biểu đồ thời gian
  • © DHBK 2005 21/Chapter4 Biểu đồ thời gian
  • © DHBK 2005 22/Chapter4 Chương 4: Tổ chức vào ra dữ liệu• Các tín hiệu của 8086 và các mạch phụ trợ 8284, 8288• Ghép nối 8088 với bộ nhớ Các loại bộ nhớ bán dẫn Giải mã địa chỉ cho bộ nhớ Ghép nối 8088 với bộ nhớ• Ghép nối 8086 với bộ nhớ• Ghép nối với thiết bị ngoại vi
  • © DHBK 2005 23/Chapter4 Chương 4: Tổ chức vào ra dữ liệu• Các tín hiệu của 8086 và các mạch phụ trợ 8284, 8288• Ghép nối 8088 với bộ nhớ Các loại bộ nhớ bán dẫn Giải mã địa chỉ cho bộ nhớ Ghép nối 8088 với bộ nhớ• Ghép nối 8086 với bộ nhớ• Ghép nối với thiết bị ngoại vi
  • © DHBK 2005 24/Chapter4 Các loại bộ nhớ bán dẫn• Bộ nhớ không bị mất dữ liệu (non-volatile) ROM (Read Only Memory) PROM (Programmable ROM) EPROM (Electrically programmable ROM) Flash EEPROM (Electrically Erasable Programmable ROM) FeRAM (Ferroelectric Random Access Memory) MRAM (Magnetoelectronic Random Access Memory)• Bộ nhớ bị mất dữ liệu (volatile) SRAM (Static RAM) SBSRAM (Synchronous Burst RAM) DRAM (Dynamic RAM) FPDRAM (Fast Page mode Dynamic RAM) EDO DRAM (Extended Data Out Dynamic RAM) SDRAM (Synchronous Dynamic RAM) DDR-SDRAM (Double Data Rate SDRAM) RDRAM (Rambus Dynamic RAM)
  • © DHBK 2005 25/Chapter4 Các loại bộ nhớ bán dẫn A0 D0 Tín hiệu A1 D1 Dữ liệu địa chỉ A2 D2 Am Dn WR WE CS OE WR: write WE: Write enable chọn chip RD OE: Output enable CS: Chip Select RD: read
  • © DHBK 2005 26/Chapter4 EPROM Isolator Floating Gate Gate Source Drain n+ n+ p
  • © DHBK 2005 27/Chapter4 EPROM No charges on floating gate Infinite number of free electrons Vss Vss Vss Many free Many free electrons electrons n+ n+ p D=Vss Hardly any G=Vss free electrons: no conducting path between Source and Drain S=Vss
  • © DHBK 2005 28/Chapter4 EPROM No charges on floating gate Vcc Vss Vss n+ n+ p D=Vss Many free electrons attracted by positive G=Vcc gate voltage: conducting channel between Source S=Vss and Drain
  • © DHBK 2005 29/Chapter4 EPROM Many electrons trapped on floating gate Vcc Vss Vss n+ n+ p D=Vss No free electrons: positive gate voltage is shielded by G=Vcc negative floating gate: no conducting channel between S=Vss Source and Drain
  • © DHBK 2005 30/Chapter4 EPROM: reading Vcc Vcc Vcc Vcc Address 2-to-4 Decoder 2 MSB 4 2 LSB 2-to-4 Mux Data
  • © DHBK 2005 31/Chapter4 Read(0x6) EPROM: reading Vcc Vcc Vcc Vcc 0110 2-to-4 Decoder 01 4 10 2-to-4 Mux 0
  • © DHBK 2005 32/Chapter4 Read(0x8) EPROM: reading Vcc Vcc Vcc Vcc 1000 2-to-4 Decoder 10 4 00 2-to-4 Mux 1
  • © DHBK 2005 33/Chapter4 EPROM: erasing UV light Vcc Vcc Vcc Vcc Address 2-to-4 Decoder 2-to-4 Decoder 2 MSB 4 2 LSB 2-to-4 Mux Data
  • © DHBK 2005 34/Chapter4 Write 1 at 0x2 EPROM: writing 12V Vcc Vcc Vcc Vcc Address 0010 2-to-4 Decoder 2-to-4 Decoder 2-to-4 Decoder 2 00 MSB 4 2 10 LSB 2-to-4 Mux Data
  • © DHBK 2005 35/Chapter4 EPROM• Ghi vào EPROM Dùng mạch nạp với điện áp 12 V 1 ms một bit• Xoá EPROM 20 phút dưới tia tử ngoại Số lần ghi 3 lần• Đọc EPROM 100 ns• EPROM họ 27xxx 2708 (1K*8), 2716 (2K*8), 2732 (4K*8), 2764 (8K*8) 27128 (16K*8), 27256 (32K*8), 27512 (64K*8)
  • © DHBK 2005 36/Chapter4 EPROM• Ví dụ: 2716 EPROM U2 8 A0 O0 9 Address 7 10 6 A1 O1 11 5 A2 O2 13 4 A3 O3 14 3 A4 O4 15 CE 2 A5 O5 16 1 A6 O6 17 23 A7 O7 22 A8 A9 19 A10 Output 20 18 OE 120 100 CE 21 VPP 450 2716
  • © DHBK 2005 37/Chapter4 So sánh các loại ROMLoại ROM Thời gian ghi Thời gian đọc số lần ghi Kích thướcROM NA 35 ns 0 MbitsPROM 1μs/bit 35 ns 1 128 KbitsEPROM 1ms/bit 45 ns 3 16 MbitsFlash 1μs/2 KB 35 ns 1 triệu GBitsEEPROM 10 ms/page 200 ns 10000 MbitFeRAM 60 ns 50 ns 1000 tỉ 32 MbitsMRAM 5ns 5ns 1015 4 Mbits
  • © DHBK 2005 38/Chapter4 SRAM One row of cells is read out at once MUX selects one out of these cells 0110 1bit 1bit 1bit 1bit 2-to-4 Decoder 2-to-4 Decoder cell cell cell cell 01 1bit 1bit 1bit 1bit cell cell cell cell 1bit 1bit 1bit 1bit 4 cell cell cell cell 1bit 1bit 1bit 1bit cell cell cell cell 10 2-to-4 Mux
  • © DHBK 2005 39/Chapter4 SRAM bit cell Bit line Bit line inverse Word Vcc Acts as a resistor
  • © DHBK 2005 40/Chapter4 Storage SRAM bit cell Bit line Bit line inverse Word Vcc R 5V 0V Current Assumption Stable situation; stores a ‘1’ Dissipates continuously
  • © DHBK 2005 41/Chapter4 Storage SRAM bit cell Bit line Bit line inverse Word Vcc R 0V 5V Current Assumption Stable situation; stores a ‘0’ Dissipates continuously
  • © DHBK 2005 42/Chapter4 Reading of a ‘1’ SRAM bit cell Bit line Bit line inverse Word Vcc R 5V 0V Current 1 0
  • © DHBK 2005 43/Chapter4 Reading of a ‘0’ SRAM bit cell Bit line Bit line inverse Word Vcc R 0V 5V Current 0 1
  • © DHBK 2005 44/Chapter4 Writing of a ‘1’ SRAM bit cell Vcc Vcc Word Word Vcc Bit line Bit line R Bit line inverse 5V 0V 0V 5V Current Current Current W.D’ W.D
  • © DHBK 2005 45/Chapter4 SRAM• Đặc điểm: 6 transistors 1 bit: đắt! Bị mất dữ liệu khi mất nguồn nhanh: thời gian đọc và ghi 5 ns Liên tục tiêu thụ năng lượng Kích thước: 16 Mbit• ứng dụng: Bộ nhớ nhỏ và nhanh (cache) Không dùng cho các thiết bị chạy pin• Ví dụ: 4016 (2K*8), 250 ns A0-A10 D0-D7 OE WE CS
  • © DHBK 2005 46/Chapter4 Bit DRAM Word line line Address 1bit 1bit 1bit 1bit 2-to-4 Decoder cell cell cell cell 2 MSB 1bit 1bit 1bit 1bit cell cell cell cell 1bit 1bit 1bit 1bit 4 cell cell cell cell 1bit 1bit 1bit 1bit cell cell cell cell 2 LSB 2-to-4 Mux Data
  • 47/Chapter4 DRAM© DHBK 2005 One row of cells is read out at once MUX selects one out of these cells 0110 1bit 1bit 1bit 1bit 2-to-4 Decoder 2-to-4 Decoder cell cell cell cell 01 1bit 1bit 1bit 1bit cell cell cell cell 1bit 1bit 1bit 1bit 4 cell cell cell cell 1bit 1bit 1bit 1bit cell cell cell cell 10 2-to-4 Mux Data
  • DRAM bit cell© DHBK 2005 48/Chapter4 Vcc/2 1 bit Pre- cell charge Word line Vcc/2 Vcc/2 Vcc/2 Bit line Refresh Sense amplifier MUX
  • DRAM bit cell 49/Chapter4© DHBK 2005 Storage Vcc/2 Pre- charge Word line 5V 0V 5V 0V 5V 5V Vcc/2 Vcc/2 Vcc/2 30 fF in Refresh .2 μm Stores .5 M e- MUX
  • DRAM bit cell 50/Chapter4© DHBK 2005 Read Vcc/2 Pre- charge Word line 2.55V 5V 2.45V 0V 2.55V 5V 2.55V 2.5V 5V 0V 5V 5V Vcc/2 Vcc/2 Vcc/2 Refresh Refresh Refresh Refresh Refresh Refresh Refresh Refresh Refresh Refresh Refresh MUX
  • © DHBK 2005 51/Chapter4 DRAM bit cell• Chu kỳ đọc 1. Precharge 2. RAS (Row Address Select): đọc tất cả các bit trong hàng được chọn. Việc đọc này làm giá trị điện áp trên tụ điện bị thay đổi 3. Khuếch đại tín hiệu trên các cột tương ứng 4.a CAS (Column Address Select): chọn 1 cột và đưa dữ liệu ra ngoài 4.b Refresh: khôi phục lại dữ liệu ban đầu của hàng đã được chọn ở bước 2.
  • DRAM bit cell 52/Chapter4© DHBK 2005 Write Vcc/2 Pre- charge Word line 2.55V 5V 2.45V 5V 0V 2.55V 5V 0V 5V 5V Vcc/2 Vcc/2 Vcc/2 Refresh Refresh Refresh Refresh Refresh Refresh MUX
  • © DHBK 2005 53/Chapter4 DRAM bit cell• Chu kỳ ghi 1. Precharge 2. RAS (Row Address Select): đọc tất cả các bit trong hàng được chọn. Việc đọc này làm giá trị điện áp trên tụ điện bị thay đổi 3. Khuếch đại tín hiệu trên các cột tương ứng 4.a CAS (Column Address Select): chọn 1 cột và đưa giá trị cần ghi vào cột đó 4.b Refresh: khôi phục lại dữ liệu ban đầu của hàng đã được chọn ở bước 2 trừ bit vừa mới được ghi vào.
  • DRAM bit cell 54/Chapter4© DHBK 2005 Refresh Vcc/2 Pre- charge Word line 2.51V 3V 5V 2.49V 2V 0V 2.51V 3V 5V 2.49V 2V 0V 2.51V 5V 3V 2.51V 5V 3V Vcc/2 Vcc/2 Vcc/2 Refresh Refresh Refresh Refresh Refresh Refresh Refresh Refresh MUX
  • © DHBK 2005 55/Chapter4 DRAM bit cell• Chu kỳ làm tươi 1. Precharge 2. RAS (Row Address Select): đọc tất cả các bit trong hàng được chọn. Việc đọc này làm giá trị điện áp trên tụ điện bị thay đổi 3. Khuếch đại tín hiệu trên các cột tương ứng 4. Refresh: khôi phục lại dữ liệu ban đầu của hàng đã được chọn ở bước 2.
  • © DHBK 2005 56/Chapter4 DRAM• Đặc điểm: 1 transistor 1 bit: rẻ, tuy nhiên việc điều khiển quá trình làm tươi làm tăng giá thành của DRAM Chỉ tiêu thụ năng lượng trong quá trình làm tươi và truy nhập Tương đối nhanh: thời gian đọc và ghi 50 ns Mỗi một hàng phải được làm tươi sau 4 ms Nếu có 1024 hàng, chu kỳ làm tươi sẽ là 4 μs Kích thước: 4 Gbits• Được dùng làm bộ nhớ chính trong các hệ vi xử lý• Ví dụ: TMS 4464 (64K*4) A0-A7 D0-D3 CAS: cho phép chốt địa chỉ cột OE WE RAS: cho phép chốt địa chỉ hàng CAS RAS
  • © DHBK 2005 57/Chapter4 DRAM• Đặc điểm: 1 transistor 1 bit: rẻ, tuy nhiên việc điều khiển quá trình làm tươi làm tăng giá thành của DRAM Chỉ tiêu thụ năng lượng trong quá trình làm tươi và truy nhập Tương đối nhanh: thời gian đọc và ghi 50 ns Mỗi một hàng phải được làm tươi sau 4 ms Nếu có 1024 hàng, chu kỳ làm tươi sẽ là 4 μs Kích thước: 4 Gbits• Được dùng làm bộ nhớ chính trong các hệ vi xử lý• Ví dụ: TMS 4464 (64K*4) A0-A7 D0-D3 CAS: cho phép chốt địa chỉ cột OE WE RAS: cho phép chốt địa chỉ hàng CAS RAS
  • © DHBK 2005 58/Chapter4 DRAM• Examples of DRAM: SIMM (Single Inline Memory Module): 72 pins DIMM (Dual Inline Memory Module): 168 pins 72-Pin SIMM
  • © DHBK 2005 59/Chapter4 SRAM - DRAM Cost SRAM DRAM Refresh controller Size
  • © DHBK 2005 60/Chapter4 Chương 4: Tổ chức vào ra dữ liệu• Các tín hiệu của 8086 và các mạch phụ trợ 8284, 8288• Ghép nối 8088 với bộ nhớ Các loại bộ nhớ bán dẫn Giải mã địa chỉ cho bộ nhớ Dùng cổng NAND Dùng bộ giải mã 74LS138, 74LS139 Dùng PROM Dùng PAL (Programmable Array Logic) Ghép nối 8088 với bộ nhớ• Ghép nối 8086 với bộ nhớ• Ghép nối với thiết bị ngoại vi
  • Giải mã địa chỉ bộ nhớ© DHBK 2005 61/Chapter4 dùng cổng NAND• Ví dụ: Ghép EPROM 2716 (2K * 8) với 8088• Phân tích: 2716: 11 đường địa chỉ A10-A0 8088: 20 đường địa chỉ A20-A0 Chọn vùng nhớ 2K trong 1M? EPROM: 00000H-003FFH: không được phép chọn: FF800H-FFFFFH: chứa đoạn khởi động FFFF0H-FFFFFH A19A18A17A16 A15A14A13A12 A11A10A9A8 A7 A6 A5 A4 A3 A2 A1 A0• FF800: 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0• FFFFF: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
  • Giải mã địa chỉ bộ nhớ© DHBK 2005 62/Chapter4 dùng cổng NAND A19A18A17A16 A15A14A13A12 A11A10A9A8 A7 A6 A5 A4 A3 A2 A1 A0• FF800: 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0• FFFFF: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 A19 A18 8088 A A17 A0-A10 8088 D Bus A16 D0-D7 Bus A15 A14 CS OE A13 A12 A11 RD IO/M
  • Giải mã địa chỉ bộ nhớ© DHBK 2005 63/Chapter4 dùng bộ giải mã• Ví dụ: Dùng EPROM 2764 (8K*8) để ghép thành bộ nhớ 64 K cho 8088 bắt đầu từ địa chỉ F0000H• Phân tích: Địa chỉ bắt đầu F0000H => địa chỉ kết thúc: FFFFFH Cần ghép 8 EPROM 2764 vì 64=8*8K A19A18A17A16 A15A14A13A12 A11A10A9A8 A7 A6 A5 A4 A3 A2 A1 A0• F0000: 1 1 1 1 0000 0000 0000 0000 IC 1• F1FFF: 1 1 1 1 0001 1111 1111 1111• F2000: 1 1 1 1 0010 0000 0000 0000 IC 2• F3FFF: 1 1 1 1 0011 1111 1111 1111• F4000: 1 1 1 1 0100 0000 0000 0000 IC 3• F5FFF: 1 1 1 1 0101 1111 1111 1111 ... ...• FE000: 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0• FFFFF: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 IC 8
  • Giải mã địa chỉ bộ nhớ© DHBK 2005 64/Chapter4 dùng bộ giải mã• Dùng bộ giải mã 3-8 74LS138 U1 1 15 C B A G2B G2A G1 y0 y1 y2 y3 y4 y5 y6 y7 A Y0 2 14 x x x 1 x x 1 1 1 1 1 1 1 1 3 B Y1 13 C Y2 x x x x 1 x 1 1 1 1 1 1 1 1 12 6 Y3 11 x x x x x 0 1 1 1 1 1 1 1 1 4 G1 Y4 10 0 0 0 0 0 1 0 1 1 1 1 1 1 1 5 G2A Y5 9 G2B Y6 0 0 1 0 0 1 1 0 1 1 1 1 1 1 7 Y7 0 1 0 0 0 1 1 1 0 1 1 1 1 1 0 1 1 0 0 1 1 1 1 0 1 1 1 1 74LS138 1 0 0 0 0 1 1 1 1 1 0 1 1 1 1 0 1 0 0 1 1 1 1 1 1 0 1 1 1 1 0 0 0 1 1 1 1 1 1 1 0 1 1 1 1 0 0 1 1 1 1 1 1 1 1 0
  • Giải mã địa chỉ bộ nhớ© DHBK 2005 65/Chapter4 dùng bộ giải mã• Dùng bộ giải mã 3-8 74LS138 A0-A12 A0-A12 A0-A10 D0-D7 D0-D7 A0-A10 2764 D0-D7 A0-A10 U1 RD 2764 OE D0-D7 2764 A0-A10 OE D0-D7 A13 1 15 2764 A0-A10 CS OE D0-D7 2 A Y0 14 A0-A10 A14 B Y1 2764 CS OE D0-D7 A0-A10 3 13 2764 CS OE D0-D7 A15 C Y2 12 2764 CS OE D0-D7 Y3 A16 6 G1 Y4 11 CS OE 2764 4 10 CS OE IO/M 5 G2A Y5 9 CS G2B Y6 7A17 CS Y7A18A19 74LS138
  • Giải mã địa chỉ bộ nhớ© DHBK 2005 66/Chapter4 dùng bộ giải mã• Dùng bộ giải mã kép 2-4 74LS139 1A 1Y0 1B 1Y1 1Y2 1G 1Y3 2A 2Y0 2B 2Y1 2Y2 2G 2Y3• Ví dụ: Dùng EPROM 27128 (16K*8) để ghép thành bộ nhớ 64 K cho 8088 bắt đầu từ địa chỉ F0000H
  • Giải mã địa chỉ bộ nhớ© DHBK 2005 67/Chapter4 dùng PROM• Dùng PROM TPB28L42 (512*8) A0-A12 A0-A12 A0-A10 D0-D7 D0-D7 A0-A10 2764 D0-D7 A0-A10 RD 2764 OE D0-D7 2764 A0-A10 OE D0-D7 A13 A0 O0 2764 A0-A10 CS OE D0-D7 A14 A1 O1 A0-A10 2764 CS OE D0-D7 A15 A2 O2 A0-A10 2764 CS OE D0-D7 A16 A3 O3 2764 CS OE D0-D7 A17 A4 TPB28L42 O4 CS OE 2764 A18 A5 O5 CS OE A19 A6 O6 CS A7 CS A8 O7 G IO/M
  • Giải mã địa chỉ bộ nhớ© DHBK 2005 68/Chapter4 dùng PAL
  • © DHBK 2005 69/Chapter4 Chương 4: Tổ chức vào ra dữ liệu• Các tín hiệu của 8086 và các mạch phụ trợ 8284, 8288• Ghép nối 8088 với bộ nhớ Các loại bộ nhớ bán dẫn Giải mã địa chỉ cho bộ nhớ Ghép nối 8088 với bộ nhớ Ghép nối 8088 với ROM Ghép nối 8088 với SRAM Ghép nối 8088 với DRAM• Ghép nối 8086 với bộ nhớ• Ghép nối với thiết bị ngoại vi
  • © DHBK 2005 70/Chapter4 Ghép nối 8088 với bộ nhớ• Nguyên tắc: Ghép trực tiếp: Thời gian truy cập bộ nhớ của CPU > thời gian truy cập của bộ nhớ + thời gian giải mã địa chỉ Ghép có chèn thêm thời gian đợi của CPU Thời gian truy cập bộ nhớ của CPU < thời gian truy cập của bộ nhớ + thời gian giải mã địa chỉ 8088 hoạt động ở 5 MHz có thời gian truy cập bộ nhớ 420 ns
  • © DHBK 2005 71/Chapter4 Ghép nối 8088 với ROM• Ví dụ: ghép nối 8088 với EPROM 2732-450 ns A0-A11 A0-A11 A0-A10 D0-D7 D0-D7 A0-A10 2732 D0-D7 A0-A10 U1 RD 2764 OE D0-D7 2764 A0-A10 OE D0-D7 A12 1 15 F8000-F8FFF 2764 A0-A10 CS OE D0-D7 2 A Y0 14 A0-A10 A13 B Y1 F9000-F9FFF 2764 CS OE D0-D7 A0-A10 3 13 2764 CS OE D0-D7 A14 C Y2 12 2764 CS OE D0-D7 Y3 A15 6 G1 Y4 11 CS OE 2764 4 10 CS OE IO/M 5 G2A Y5 9 CS A16 G2B Y6 7 FF000-FFFFF CS Y7 A17 A18 Bộ tạo Tw 74LS138 A19 Tới chân RDY1 của 8284
  • © DHBK 2005 72/Chapter4 Ghép nối 8088 với SRAM• Ví dụ: ghép nối 8088 với SRAM 62256 (32K*8) để được bộ nhớ 256 KB, bắt đầu từ địa chỉ 00000H A0-A14 A0-A14 A0-A10 D0-D7 D0-D7 A0-A10 62256 D0-D7 A0-A10 U1 RD 2764 OE D0-D7 WR OE 2764 A0-A10 WE D0-D7 A15 1 15 00000-07FFF 2764 A0-A10 CS OE D0-D7 2 A Y0 14 A0-A10 A16 B Y1 08000-0FFFF 2764 CS OE D0-D7 A0-A10 3 13 10000-17FFF 2764 CS OE D0-D7 A17 C Y2 12 2764 CS OE D0-D7 Y3 A18 6 G1 Y4 11 CS OE 2764 4 10 CS OE IO/M 5 G2A Y5 9 CS G2B Y6 7 38000-3FFFF CS Y7 A19 74LS138
  • © DHBK 2005 73/Chapter4 Ghép nối 8088 với DRAM• Cần có DRAM controller: Dồn kênh 2 loại tín hiệu địa chỉ cho mỗi mạch nhớ và cung cấp xung cho phép chốt địa chỉ RAS và CAS Cung cấp tín hiệu việc ghi đọc bộ nhớ Làm tươi bộ nhớ trong thời gian thích hợp Đảm bảo không có xung đột trong hoạt động ghi đọc với công việc làm tươi
  • © DHBK 2005 74/Chapter4 Ghép nối 8088 với DRAM• Ví dụ: ghép 8088 với TMS 4464 (64K*4) DRAM để được bộ nhớ 128 KB, bắt đầu tại địa chỉ 00000H A0-A7 RA0-RA7 MA0-MA7 A0-A7 A8-A15 CA0-CA7 2x4464 RAS0 RAS ALE ALE CAS CAS A16 REN1 RD ACR TMS 4500A WR ACW A0-A7 RDY RDY RAS1 2x4464 CLK CLK RAS A17 A18 CAS A19 CS IO/M
  • © DHBK 2005 75/Chapter4 Chương 4: Tổ chức vào ra dữ liệu• Các tín hiệu của 8086 và các mạch phụ trợ 8284, 8288• Ghép nối 8088 với bộ nhớ• Ghép nối 8086 với bộ nhớ• Ghép nối với thiết bị ngoại vi
  • © DHBK 2005 76/Chapter4 Ghép nối 8086 với bộ nhớ FFFFF FFFFE FFFFD 8088 8086 FFFFC FFFFB FFFFA 8 bit 16 bit IO/M M/IO BHE 00005 00004 00003 00002 BHE A0 Chức năng 00001 00000 Bank cao Bank thấp (bank lẻ) (Bank chẵn) 0 0 chọn cả 2 bank 0 1 chọn bank cao 1 0 chọn bank thấp 1 1 không chọn bank nào
  • © DHBK 2005 77/Chapter4 Ghép nối 8086 với bộ nhớ• Ví dụ: Ghép EPROM 2716 (2K * 8) với 8086 để được vùng bộ nhớ FF000H-FFFFFH Cần 2 IC vì 4KB=2*2KB A19A18A17A16 A15A14A13A12 A11A10A9A8 A7 A6 A5 A4 A3 A2 A1 A0• FF000: 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 Bank thấp• FFFFE: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0• FF001: 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 Bank cao• FFFFF: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
  • © DHBK 2005 78/Chapter4 Ghép nối 8086 với bộ nhớ A19 A18 A17 A1-A11 A0-A10 D0-D7 D0-D7 A16 A15 2716 A14 CS OE A13 A12 M/IO RD A0 A19 A18 A17 A1-A11 A0-A10 D0-D7 D8-D15 A16 A15 2716 A14 CS OE A13 A12 M/IO RD BHE
  • © DHBK 2005 79/Chapter4 Ghép nối 8086 với bộ nhớ BHE HRD RD A1-A11 A0-A10 D0-D7 D0-D7 A0 LRD 2716 CS OE LRD A19 A18 A17 A1-A11 A0-A10 D0-D7 D8-D15 A16 A15 2716 A14 CS OE A13 A12 M/IO HRD
  • © DHBK 2005 80/Chapter4 Ghép nối 8086 với bộ nhớ• Ví dụ: ghép nối 8086 với SRAM 62256 (32K*8) để được bộ nhớ 256 KB, bắt đầu từ địa chỉ 00000H BHE HWR WR A0 LWR
  • © DHBK 2005 81/Chapter4 Ghép nối 8086 với bộ nhớ• Ví dụ: thiết kế hệ thống nhớ cho 8086 với 64 KB EPROM và 128 KB SRAM sử dụng SRAM 62256 (32K*8) và EPROM 27128 (16K*8)
  • © DHBK 2005 82/Chapter4 Chương 4: Tổ chức vào ra dữ liệu• Các tín hiệu của 8086 và các mạch phụ trợ 8284, 8288• Ghép nối 8088 với bộ nhớ• Ghép nối 8086 với bộ nhớ• Ghép nối với thiết bị ngoại vi Các kiểu giao tiếp giữa vi xử lý và thiết bị ngoại vi Các kiểu ghép nối vào/ra Giải mã địa chỉ cho các thiết bị vào/ra Mạch ghép nối vào ra song song lập trình được 8255A Mạch điều khiển bàn phím/màn hình lập trình được 8279 Bộ định thời lập trình được 8254 Giao tiếp truyền thông lập trình được 16550 Bộ biến đổi số tương tự DAC0830 và bộ biến đổi tương tự số ADC0804
  • © DHBK 2005 83/Chapter4 Chương 4: Tổ chức vào ra dữ liệu• Các tín hiệu của 8086 và các mạch phụ trợ 8284, 8288• Ghép nối 8088 với bộ nhớ• Ghép nối 8086 với bộ nhớ• Ghép nối với thiết bị ngoại vi Các kiểu giao tiếp giữa vi xử lý và thiết bị ngoại vi Các kiểu ghép nối vào/ra Giải mã địa chỉ cho các thiết bị vào/ra Mạch ghép nối vào ra song song lập trình được 8255A Mạch điều khiển bàn phím/màn hình lập trình được 8279 Bộ định thời lập trình được 8254 Giao tiếp truyền thông lập trình được 16550 Bộ biến đổi số tương tự DAC0830 và bộ biến đổi tương tự số ADC0804
  • Các kiểu giao tiếp giữa vi xử lý và© DHBK 2005 84/Chapter4 thiết bị ngoại vi Memory bus CPU Memory Bus Adapter I/O Bus I/O I/O I/O Controller Controller Controller I/O I/O I/O Device Device Device
  • Các kiểu giao tiếp giữa vi xử lý và© DHBK 2005 85/Chapter4 thiết bị ngoại vi• Giao tiếp kiểu thăm dò, móc nối (handshaking) 1. CPU kiểm tra trạng thái của thiết bị ngoại vi 2. Nếu thiết bị ngoại vi sẵn sàng trao đối dữ liệu việc trao đối sẽ được thực hiện bởi tín hiệu móc nối 3. Nếu thiết bị ngoại vi chưa sẵn sàng, CPU sẽ thực hiện công việc khác và quay lại bước 1• Giao tiếp bằng ngắt (Interrupt) 1. Thiết bị ngoại vi muốn trao đổi dữ liệu với CPU, nó sẽ gửi tín hiệu yêu cầu ngắt tới chân INTR của CPU 2. CPU chấp nhận yêu cầu ngắt bằng cách gửi tín hiệu INTA tới thiết bị ngoại vi 3. CPU thực hiện chương trình con phục vụ ngắt• Giao tiếp bằng truy cập bộ nhớ trực tiếp (DMA) 1. Thiết bị ngoại vi muốn truy cập trực tiếp bộ nhớ không thông qua CPU, nó đưa tín hiệu yêu cầu tới chân HOLD của CPU thông qua khối điều khiển DMA 2. CPU chấp nhận và gửi tín hiệu HLDA tới khối điều khiển DMA và treo các bus 3. Khối điều khiển DMA sẽ điều khiển việc trao đổi dữ liệu giữa thiết bị ngoại vi và bộ nhớ
  • © DHBK 2005 86/Chapter4 Chương 4: Tổ chức vào ra dữ liệu• Các tín hiệu của 8086 và các mạch phụ trợ 8284, 8288• Ghép nối 8088 với bộ nhớ• Ghép nối 8086 với bộ nhớ• Ghép nối với thiết bị ngoại vi Các kiểu ghép nối vào/ra Giải mã địa chỉ cho các thiết bị vào/ra Mạch ghép nối vào ra song song lập trình được 8255A Mạch điều khiển bàn phím/màn hình lập trình được 8279 Bộ định thời lập trình được 8254 Giao tiếp truyền thông lập trình được 16550 Bộ biến đổi số tương tự DAC0830 và bộ biến đổi tương tự số ADC0804
  • © DHBK 2005 87/Chapter4 Các kiểu ghép nối vào ra• Thiết bị vào ra có không gian địa chỉ cách biệt: FFFF Địa chỉ: 0000H-FFFFH M/IO=0 Vùng mở rộng 03FF Vào ra dữ liệu bằng lệnh IN, OUT COM1 03F8 03F0 Điều khiển đĩa mềm Ví dụ: CGA adapter IN AX, 00H 03D0 LPT1 IN AL, F0H 0378 Điều khiển ổ cứng IN AX, DX 0320 COM2 02F8 8255 OUT 00H, AX 0060 Định thời (8253) OUT F0H, AL 0040 OUT DX, AX Điều khiển ngắt 0020 0000 Điều khiển DMA
  • © DHBK 2005 88/Chapter4 Các kiểu ghép nối vào ra• Thiết bị vào ra có không gian địa chỉ cách biệt:
  • © DHBK 2005 89/Chapter4 Các kiểu ghép nối vào ra• Thiết bị vào/ra có cùng không gian địa chỉ với bộ nhớ FFFFF M/IO=1 Vào ra dữ liệu bằng bất kỳ lệnh di chuyển dữ liệu nào giữa I/O CPU và bộ nhớ Ví dụ: MOV AX, [0FF3H] 00000 Memory + I/O
  • © DHBK 2005 90/Chapter4 Các kiểu ghép nối vào ra• Ví dụ cổng vào đơn giản: VCC 8 7 6 5 4 3 2 1 10K 10 11 12 13 14 15 16 9 U1 2 18 4 A1 Y1 16 6 A2 Y2 14 8 A3 A4 Y3 Y4 12 Tới bus dữ liệu 11 9 13 A5 A6 Y5 Y6 7 của CPU 15 5 17 A7 Y7 3 A8 Y8 1 19 1OE 2OE 74ALS244 SEL Từ giải mã địa chỉ cổng
  • © DHBK 2005 91/Chapter4 Các kiểu ghép nối vào ra• Ví dụ cổng ra đơn giản: VCC 330 U2 3 2 4 D0 Q0 5 7 D1 Q1 6 Từ bus dữ liệu 8 D2 D3 Q2 Q3 9 13 12 của CPU 14 D4 Q4 15 17 D5 Q5 16 18 D6 Q6 19 D7 Q7 11 CLK 1 OE SEL 74ALS374 Từ giải mã địa chỉ cổng
  • © DHBK 2005 92/Chapter4 Chương 4: Tổ chức vào ra dữ liệu• Các tín hiệu của 8086 và các mạch phụ trợ 8284, 8288• Ghép nối 8088 với bộ nhớ• Ghép nối 8086 với bộ nhớ• Ghép nối với thiết bị ngoại vi Các kiểu ghép nối vào/ra Giải mã địa chỉ cho các thiết bị vào/ra Mạch ghép nối vào ra song song lập trình được 8255A Mạch điều khiển bàn phím/màn hình lập trình được 8279 Bộ định thời lập trình được 8254 Giao tiếp truyền thông lập trình được 16550 Bộ biến đổi số tương tự DAC0830 và bộ biến đổi tương tự số ADC0804
  • © DHBK 2005 93/Chapter4 Giải mã địa chỉ cho các thiết bị vào/ra• 8 bit địa chỉ hay 16 bit? Tổng số thiết bị < 256: 8 bit A0-A7: 00H-FFH Tổng số thiết bị >256: 16 bit A0-A15: 0000H-FFFFH• 8 bit dữ liệu hay 16 bit? Nếu cổng là 8 bit: chọn 1 trong 2 bank Nếu cổng là 16 bit: chọn cả 2 bank BHE A0 FFFF FFFE FFFD FFFC FFFB FFFA D8-D15 D0-D7 0005 0004 0003 0002 0001 0000 Bank cao Bank thấp (bank lẻ) (Bank chẵn)
  • © DHBK 2005 94/Chapter4 Giải mã địa chỉ cho các thiết bị vào/ra• Ví dụ: Giải mã địa chỉ cho thiết bị ra 8 bit với địa chỉ 07H 07H= 0000 0111A0 A0A1 D0-D7 D8-D15 A1A2 D0-D7 A2 D0-D7A3 A3A4 A4 CS WE CS WEA5 A5A6 A6A7 A7 WR WRIO/M M/IO BHE 8088 8086
  • © DHBK 2005 95/Chapter4 Giải mã địa chỉ cho các thiết bị vào/ra• Ví dụ: Giải mã địa chỉ cho thiết bị ra 16 bit với địa chỉ cổng 64H và 65H 64H= 0110 0100 65H= 0110 0101 D8-D15 D8-D15 CS WE A1 A2 A3 WR A4 A5 A6 D7-D0 D0-D7 A7 M/IO CS WE
  • © DHBK 2005 96/Chapter4 Giải mã địa chỉ cho các thiết bị vào/ra• Ví dụ: Giải mã địa chỉ cho các cổng vào ra 8 bit ở bank thấp với các địa chỉ 10H, 12H, 14H, 16H, 18H, 1AH, 1CH, 1EH 10H=0001 0000 12H=0001 0010 .... 1EH=0001 1110 U1 A1 1 15 10H 2 A Y0 14 A2 3 B Y1 13 12H 14H A3 C Y2 12 16H 6 Y3 11 A0 18H 4 G1 Y4 10 1AH M/IO 5 G2A Y5 9 1CH A4 G2B Y6 7 1EH A5 Y7 A6 A7 74LS138
  • © DHBK 2005 97/Chapter4 Chương 4: Tổ chức vào ra dữ liệu• Các tín hiệu của 8086 và các mạch phụ trợ 8284, 8288• Ghép nối 8088 với bộ nhớ• Ghép nối 8086 với bộ nhớ• Ghép nối với thiết bị ngoại vi Các kiểu ghép nối vào/ra Giải mã địa chỉ cho các thiết bị vào/ra Mạch ghép nối vào ra song song lập trình được 8255A Cấu trúc của 8255A Các chế độ làm việc của 8255A Lập trình cho 8255A Mạch điều khiển bàn phím/màn hình lập trình được 8279 Bộ định thời lập trình được 8254 Giao tiếp truyền thông lập trình được 16550 Bộ biến đổi số tương tự DAC0830 và bộ biến đổi tương tự số ADC0804
  • © DHBK 2005 98/Chapter4 Cấu trúc của 8255A• Giao tiếp các thiết bị tương thích TTL với vi xử lý• Thường được dùng để giao tiếp bàn phím và máy in trong các may tính PC (dưới dạng là một khối trong chíp tích hợp)• Cần chèn trạng thái đợi khi làm việc với vi xử lý >8 Mhz• Có 24 đường vào ra và có 3 chế độ làm việc• Trong các máy PC, địa chỉ cổng của 8255 là 60H- 63H
  • © DHBK 2005 99/Chapter4 Cấu trúc của 8255A
  • © DHBK 2005 100/Chapter4 Cấu trúc của 8255A
  • © DHBK 2005 101/Chapter4 Cấu trúc của 8255A RD WR
  • © DHBK 2005 102/Chapter4 Các chế độ làm việc của 8255A
  • © DHBK 2005 103/Chapter4 Các chế độ làm việc của 8255A• Chế độ 0: Chế độ vào ra đơn giản: các cổng có thể làm việc như là cổng vào có đệm hoặc cổng ra có chốt đệm.• Chế độ 1: Chế độ này cho phép cổng A và B làm việc như các thiết bị vào hoặc ra có tín hiệu móc nối (handshaking) do các bit tương ứng của cổng C trong cùng nhóm đảm nhiệm• Chế độ 2: chế độ này cho phép cổng A làm việc 2 chiều với các tín hiệu móc nối do cổng PCH đảm nhiệm. Cổng B có thể làm việc ở chế độ 1 hoặc 0
  • © DHBK 2005 104/Chapter4 Chế độ 0 RD WR
  • © DHBK 2005 ; Lập trình cho 8255 105/Chapter4 Chế độ 0 MOV AL, 10000000B ; Port A, Port B mode 0, output MOV DX, 703H OUT DX, AL ; Thủ tục hiển thị LED từ dữ liệu chứa trong bộ nhớ• Giả thiết địaPUSHF của các cổng củaghi vào ngăn xếp là 0700H- chỉ ; cất các thanh 8255 DISP PROC NEAR 0703H PUSH AX PUSH BX PUSH DX PUSH SI ; Thiết lập các thanh ghi để hiển thị MOV BX, 8 ;số LED MOV AH, 7FH ;chọn LED đầu tiên 0111 1111 MOV SI, OFFSET MEM-1 ; địa chỉ chứa dữ liệu MOV DX,701H ; địa chỉ cổng B ;Hiển thị 8 số DISP1: MOV AL, AH ;chọn 1 số OUT DX, AL DEC DX ; địa chỉ cổng A MOV AL, [BX+SI] ; dữ liệu của 7 đoạn led OUT DX, AL CALL Delay ; trễ 1 ms ROR AH, 1 ;số tiếp theo INC DX ; địa chỉ cổng B DEC BX ;giảm chỉ số JNZ DISP1 ; lặp lại 8 lần ;khôi phục lại các thanh ghi POP SI POP DX POP BX POP AX POPF RET DISP ENDP
  • © DHBK 2005 106/Chapter4 Chế độ 0
  • © DHBK 2005 107/Chapter4 Chế độ 0
  • ROWS© DHBK 2005 EQU 4 ; 4 hàng 108/Chapter4 Chế độ 0 COLS EQU 4 ; 4 cột PORTA EQU 50H PORTB EQU 51HKEY PROC NEAR USES CX CALL SCAN ;test all keys SCAN PROC NEAR USES BX JNZ KEY ; if key closed MOV CL, ROWS ;form row mask CALL DELAY ; đợi 10 ms MOV BH, OFFH CALL SCAN SHL BH, CL JNZ KEY MOV CX, COLS ;load column countKEY1: MOV BL, OFEH ;get selection mode CALL SCAN SCAN1: JZ KEY1 ; if no key closed MOV AL, BL ;select column CALL DELAY OUT PORTB, AL CALL SCAN ROL BL, 1 JZ KEY1 IN AL, PORTA; read rows PUSH AX ;cất mã hàng OR AL,BH MOV AL, COLS ;cal starting row key CMP AL, 0FFH ;test for a key SUB AL, CL JNZ SCAN2 MOV CH, ROWS LOOP SCAN1 MUL CH MOV CL, AL SCAN2: DEC CL RET POP AX SCAN ENDPKEY2: ROR AL,1 ;find row position DELAY PROC NEAR USES CX INC CL MOV CX, 5000 ;10ms (8MHZ) JC KEY2 DELAY1: MOV AL,CL ;move code to AL LOOP DELAY1 RET RETKEY ENDP DELAY ENDP
  • © DHBK 2005 109/Chapter4 Chế độ 1• Port A và B làm việc ở chế độ cổng vào có chốt: dữ liệu sẽ được giữ tại cổng A, B cho đến khi CPU sẵn sàng cổng C làm cổng điều khiển và cấp tín hiệu móc nối
  • © DHBK 2005 110/Chapter4 Chế độ 1
  • © DHBK 2005 111/Chapter4 Chế độ 1 PA0-PA7 ASCII D0-D7 STB PC4 DAV 82C55 Keyboard Bit5 EQU 20H PortC EQU 22H PortA EQU 20H Read PROC NEAR IN AL, PortC ; read PortC Test AL, Bit5 ; test IBF JZ READ ; if IBF=0 IN AL, PortA ; read data RET Read Endp
  • © DHBK 2005 112/Chapter4 Chế độ 1• Port A và B làm việc ở chế độ cổng ra có chốt: tương tự như cổng ra ở chế độ 0 cổng C làm cổng điều khiển và cấp tín hiệu móc nối 1
  • © DHBK 2005 113/Chapter4 Chế độ 1
  • © DHBK 2005 114/Chapter4 Chế độ 1 PB0-PB7 ASCII D0-D7 ACK PC2 ACK PC4 DS 82C55 Printer DS: data strobe
  • © DHBK 2005 115/Chapter4 Chế độ 1 BIT1 EQU 2 PORTC EQU 62H PORTB EQU 61H CMD EQU 63H PRINT PROC NEAR ;check printer ready IN AL,PORTC ;get OBF TEST AL, BIT1 ;test OBF JZ PRINT ;if OBF=0 ;send character to printer MOV AL, AH ;get data OUT PORTB, AL ;print data ;send data strobe to printer MOV AL, 8 ;clear DS OUT CMD,AL MOV AL, 9 ;set DS OUT CMD, AL RET PRINT ENDP
  • © DHBK 2005 116/Chapter4 Chế độ 2• Chỉ cho phép đối với cổng A• Cổng A là cổng 2 chiều, dùng để giao tiếp giữa 2 máy tính hoặc dùng trong chuẩn giao tiếp IEEE-488 GPIB...
  • © DHBK 2005 117/Chapter4 Chế độ 2
  • © DHBK 2005 118/Chapter4 Chương 4: Tổ chức vào ra dữ liệu• Các tín hiệu của 8086 và các mạch phụ trợ 8284, 8288• Ghép nối 8088 với bộ nhớ• Ghép nối 8086 với bộ nhớ• Ghép nối với thiết bị ngoại vi Các kiểu ghép nối vào/ra Giải mã địa chỉ cho các thiết bị vào/ra Mạch ghép nối vào ra song song lập trình được 8255A Mạch điều khiển bàn phím/màn hình lập trình được 8279 Bộ định thời lập trình được 8254 Giao tiếp truyền thông lập trình được 16550 Bộ biến đổi số tương tự DAC0830 và bộ biến đổi tương tự số ADC0804
  • © DHBK 2005 119/Chapter4 Mạch điều khiển 8279• Điều khiển bàn phím và màn hiển thị 8279: quét và mã hoá cho bàn phím tới 64 phím bộ đệm FIFO có thể chứa 8 ký tự Điều khiển màn hiển thị tới 16 số 16*8 RAM để chứa thông tin về 16 số hiển thị• Các tín hiệu chính: A0: chọn giữa chế độ dữ liệu hoặc điều khiển BD: xoá trắng màn hiển thị CLK: tín hiệu xung nhịp vào CN/ST (control/Strobe): cổng vào nối với phím điều khiển của bàn phím CS : chip select DB7-DB0: bus dữ liệu 2 chiều IRQ: =1 khi có phím bấm OUTA3-OUTA0: dữ liệu tới màn hiển thị (bit cao) OUTB3-OUTB0: dữ liệu tới màn hiển thị (bit thấp) RD: cho phép đọc dữ liệu từ thanh ghi điều khiển hoặc trạng thái RL7-RL0: xác định phím được nhấn SHIFT: nối với phím shift của bàn phím SL3-SL0: tín hiệu quét màn hình và màn hiển thị WR: viết dữ liệu vào thanh ghi điều khiển hoặc thanh ghi dữ liệu
  • © DHBK 2005 120/Chapter4 Ghép nối 8279 với 8088
  • © DHBK 2005 121/Chapter4 Ghép nối 8279 với bàn phím
  • © DHBK 2005 122/Chapter4 Ghép nối 8279 với màn hiển thị
  • © DHBK 2005 123/Chapter4 Lập trình cho 8279• Từ điều khiển: D7D6D5D4D3D2D1D0
  • © DHBK 2005 124/Chapter4 Lập trình cho 8279
  • © DHBK 2005 125/Chapter4 Chương 4: Tổ chức vào ra dữ liệu• Các tín hiệu của 8086 và các mạch phụ trợ 8284, 8288• Ghép nối 8088 với bộ nhớ• Ghép nối 8086 với bộ nhớ• Ghép nối với thiết bị ngoại vi Các kiểu ghép nối vào/ra Giải mã địa chỉ cho các thiết bị vào/ra Mạch ghép nối vào ra song song lập trình được 8255A Mạch điều khiển bàn phím/màn hình lập trình được 8279 Bộ định thời lập trình được 8254 Giao tiếp truyền thông lập trình được 16550 Bộ biến đổi số tương tự DAC0830 và bộ biến đổi tương tự số ADC0804
  • © DHBK 2005 126/Chapter4 Bộ định thời lập trình được 8254
  • © DHBK 2005 127/Chapter4 Bộ định thời lập trình được 8254
  • © DHBK 2005 128/Chapter4 Bộ định thời lập trình được 8254
  • © DHBK 2005 129/Chapter4 Bộ định thời lập trình được 8254
  • © DHBK 2005 130/Chapter4 Bộ định thời lập trình được 8254
  • © DHBK 2005 131/Chapter4 Bộ định thời lập trình được 8254
  • © DHBK 2005 132/Chapter4 Bộ định thời lập trình được 8254
  • © DHBK 2005 133/Chapter4 Chương 4: Tổ chức vào ra dữ liệu• Các tín hiệu của 8086 và các mạch phụ trợ 8284, 8288• Ghép nối 8088 với bộ nhớ• Ghép nối 8086 với bộ nhớ• Ghép nối với thiết bị ngoại vi Các kiểu ghép nối vào/ra Giải mã địa chỉ cho các thiết bị vào/ra Mạch ghép nối vào ra song song lập trình được 8255A Mạch điều khiển bàn phím/màn hình lập trình được 8279 Bộ định thời lập trình được 8254 Giao tiếp truyền thông lập trình được 16550 Bộ biến đổi số tương tự DAC0830 và bộ biến đổi tương tự số ADC0804
  • Giao tiếp truyền thông lập trình được© DHBK 2005 134/Chapter4 16550
  • Giao tiếp truyền thông lập trình được© DHBK 2005 135/Chapter4 16550
  • Giao tiếp truyền thông lập trình được© DHBK 2005 136/Chapter4 16550
  • Giao tiếp truyền thông lập trình được© DHBK 2005 137/Chapter4 16550
  • Giao tiếp truyền thông lập trình được© DHBK 2005 138/Chapter4 16550
  • Giao tiếp truyền thông lập trình được© DHBK 2005 139/Chapter4 16550
  • Giao tiếp truyền thông lập trình được© DHBK 2005 140/Chapter4 16550
  • Giao tiếp truyền thông lập trình được© DHBK 2005 141/Chapter4 16550
  • Giao tiếp truyền thông lập trình được© DHBK 2005 142/Chapter4 16550
  • Giao tiếp truyền thông lập trình được© DHBK 2005 143/Chapter4 16550
  • Giao tiếp truyền thông lập trình được© DHBK 2005 144/Chapter4 16550
  • Giao tiếp truyền thông lập trình được© DHBK 2005 145/Chapter4 16550
  • Giao tiếp truyền thông lập trình được© DHBK 2005 146/Chapter4 16550
  • Giao tiếp truyền thông lập trình được© DHBK 2005 147/Chapter4 16550
  • Giao tiếp truyền thông lập trình được© DHBK 2005 148/Chapter4 16550
  • Giao tiếp truyền thông lập trình được© DHBK 2005 149/Chapter4 16550
  • © DHBK 2005 150/Chapter4 Chương 4: Tổ chức vào ra dữ liệu• Các tín hiệu của 8086 và các mạch phụ trợ 8284, 8288• Ghép nối 8088 với bộ nhớ• Ghép nối 8086 với bộ nhớ• Ghép nối với thiết bị ngoại vi Các kiểu ghép nối vào/ra Giải mã địa chỉ cho các thiết bị vào/ra Mạch ghép nối vào ra song song lập trình được 8255A Mạch điều khiển bàn phím/màn hình lập trình được 8279 Bộ định thời lập trình được 8254 Giao tiếp truyền thông lập trình được 16550 Bộ biến đổi số tương tự DAC0830 và bộ biến đổi tương tự số ADC0804
  • © DHBK 2005 151/Chapter4 Bộ biến đổi số tương tự DAC
  • © DHBK 2005 152/Chapter4 Bộ biến đổi số tương tự DAC
  • © DHBK 2005 153/Chapter4 Bộ biến đổi tương tự số ADC
  • © DHBK 2005 154/Chapter4 Bộ biến đổi tương tự số ADC
  • © DHBK 2005 155/Chapter4 Bộ biến đổi tương tự số ADC
  • © DHBK 2005 1/Chapter5 Nộ dung môn họ i c1. Giớ thiệ chung vềhệvi xửlý i u2. Bộvi xửlý Intel 8088/80863. Lậ trình hợ ngữcho 8086 p p4. Tổchứ vào ra dữliệ c u5. Ngắ và xửlý ngắ t t6. Truy cậ bộnhớtrự tiế DMA p c p7. Các bộvi xửlý trên thự tế c
  • © DHBK 2005 2/Chapter5 Chư ng 5: Ngắ và xửlý ngắ ơ t t• Giớ thiệ vềngắ i u t• Đ ứ củ CPU khi có yêu cầ ngắ áp ng a u t• Các thủtụ ngắ củ ngư i sửdụ c t a ờ ng• Xửlý ư tiên ngắ u t• Mạ đ u khiể ngắ ư tiên 8259A ch iề n t u• Ngắ trong máy tính IBM PC t
  • © DHBK 2005 3/Chapter5 Giớ thiệ vềngắ i u t• 2 loai ngắt: Ngắ cứ t ng: tín hiệ yêu cầ ngắ từ u u t  NMI (ngắ không che đ ợ t ư c)  Lỗ chẵ lẻvà các lỗ hệthố nghiêm trọ khác (ví dụ mấ nguồ i n i ng ng : t n) và INTR (ngắ che đ ợ t ư c) Ngắ mề CPU thự hiệ các lệ ngắ INT N, 0=< N <=255 t m: c n nh t
  • © DHBK 2005 4/Chapter5 Giớ thiệ vềngắ i u t
  • © DHBK 2005 5/Chapter5 Giớ thiệ vềngắ i u t
  • © DHBK 2005 6/Chapter5 Đ p ứ củ CPU khi có yêu cầ ngắ á ng a u t• Bả vector ngắ 1 Kbytes 00000H đ n 003FF H ng t: ế 256 vector ngắ t 1 vector 4 bytes, chứ IP và CS củ CTCPVN a a 32 vector đ u dành riêng cho Intel ầ 224 vector sau dành cho ngư i dùng ờ
  • © DHBK 2005 7/Chapter5 Đ p ứ củ CPU khi có yêu cầ ngắ á ng a u t Chư ng trình chính ơ CTCPVN lệ cấ các nh t CPU: thanh ghi •Cấ thanh ghi cờF t •Xoá IF và TF •Cấ CS và IP t •lấ đa chỉ y ị CTCPVN CPU: •Lấ lạ IP và CS y i lệ lấ các nh y •Lấ lạ thanh ghi cờF y i thanh ghi IRET
  • © DHBK 2005 8/Chapter5 Các thủtụ ngắ củ ngư i sửdụ c t a ờ ng• Thiế lậ vector ngắ t p t: Cấ vector ngắ hiệ tạ t t n i: Dùng hàm 35H củ ngắ 21H củ DOS a t a  Vào: AH=35h, AL= sốhiệ ngắ u t  Ra: ES:BX = đa chỉ oạ : đa chỉ ị đ n ị offset củ CTCPVN a Cấ ES và BX vào thanh ghi hoặ ô nhớ t c Đ a vector củ thủtụ ngắ củ ngư i sửdụ vào bả ư a c t a ờ ng ng vector ngắt: Dùng hàm 25H củ ngắ 21H a t  Vào: AH=25H, AL= sốhiệ ngắ DS:DX= đa chỉ oạ đa chỉ u t, ị đ n: ị offset cả CTCPVN củ ngư i sửdụ u a ờ ng Khôi phụ lạ vector cũtrư c khi kế thúc CTCPVN củ c i ớ t a ngư i sửdụ ờ ng
  • © DHBK 2005 9/Chapter5 Các thủtụ ngắ củ ngư i sửdụ c t a ờ ng.Model Small.Stack 100.Data OLD_IP DW ? OLD_CS DW ?.CodeMain Proc;Lấ vector cũcủ ngắ 40H y a t MOV AH, 35H MOV AL, 40H INT 21H MOV OLD_IP, BX MOV OLD_CS, ES;Thiế lậ vector ngắ 40H mớ t p t i MOV DX, offset New40 MOV AX, CS PUSH DS MOV DS, AX MOV AH, 25H INT 21H POP DSMain EndpNew40 Proc ;các lệ củ CTCPVN nh aNew40 EndpEnd Main
  • © DHBK 2005 10/Chapter5 Xửlý ư tiên ngắ u t• Ngắ có mứ ư tiên cao nhấ sẽđ ợ phụ vụtrư c t c u t ưc c ớ• Các mứ ư tiên: c u Ngắt nộ bộ INT 0, INT 1 i : Ngắt không che đ ợ NMI ư c: Ngắt che đ ợ INTR ưc Ngắt mề INT N m• CPU sẽxửlý thếnào nế CPU đ u ang thự hiệ phép c n chia và sốchia bằ 0 đ ng thờ có yêu cầ ngắ từ ng ồ i u t chân INTR?
  • © DHBK 2005 11/Chapter5 Mạ đề khiể ngắ 8259A ch i u n t
  • © DHBK 2005 12/Chapter5 Mạ đề khiể ngắ 8259A ch i u n t
  • © DHBK 2005 13/Chapter5 Mạ đề khiể ngắ 8259A ch i u n t
  • © DHBK 2005 14/Chapter5 Mạ đề khiể ngắ 8259A ch i u n t
  • © DHBK 2005 15/Chapter5 Mạ đề khiể ngắ 8259A ch i u n t
  • © DHBK 2005 16/Chapter5 Mạ đề khiể ngắ 8259A ch i u n t
  • © DHBK 2005 17/Chapter5 Mạ đề khiể ngắ 8259A ch i u n t
  • © DHBK 2005 18/Chapter5 Mạ đề khiể ngắ 8259A ch i u n t
  • © DHBK 2005 19/Chapter5 Mạ đề khiể ngắ 8259A ch i u n t
  • © DHBK 2005 20/Chapter5 Mạ đề khiể ngắ 8259A ch i u n t
  • © DHBK 2005 21/Chapter5 Mạ đề khiể ngắ 8259A ch i u n t
  • © DHBK 2005 22/Chapter5 Mạ đề khiể ngắ 8259A ch i u n t
  • © DHBK 2005 23/Chapter5 Mạ đề khiể ngắ 8259A ch i u n t
  • © DHBK 2005 24/Chapter5 Các ngắ trong máy tính IBM/PC t Cascaded i8259As INTR INT D0 IRQ0 IR0 D1 IRQ1 IR1 D2 IRQ2 IR2 D3 IRQ3 IR3 IRQ4 IR4 8259A D4 D5 IRQ5 IR5 Master D6 IRQ6 IR6 D7 IRQ7 IR7 INTA INTA Hi SP/EN CAS1 CAS0 CAS2 INT D0 IRQ8 IR0 D1 IRQ9 IR1 D2 IRQ10 IR2 D3 IRQ11 IR3 IRQ12 IR4 8259A D4 D5 IRQ13 IR5 Slave D6 IRQ14 IR6 D7 IRQ15 IR7 INTA Lo SP/EN
  • © DHBK 2005 25/Chapter5 Các ngắ trong máy tính IBM/PC t Priority Use of PC/AT Interrupt Highest IRQ0 Timer 0 IRQ1 Keyboard IRQ2 From slave 8259 IRQ8 Real time clock IRQ9 * IRQ10 IRQ11 IRQ12 IRQ13 C0-processor IRQ14 Hard disk controller IRQ15 IRQ3 COM2 port IRQ4 COM1 port IRQ5 LPT2 IRQ6 Floppydisk controller Lowest IRQ7 LPT1 * IRQ9 interrupt is redirected to IRQ2 vector
  • © DHBK 2005 Các ngắ trong máy tính IBM/PC t 26/Chapter5 PC/AT VECTOR TABLE 77h IRQ15 Reserved 76h IRQ14 Fixed Disk Controller 75h IRQ13 80x87 74h IRQ12 Reserved 73h IRQ11...Reserved 72h IRQ10 ..Reserved 71h IRQ9 Directed to IRQ2 70h IRQ8 CMOS RTC 67h EMM 66h User Interrupts 60h 4Ah ROM BIOS and VIDEO 40h 3Fh MSDOS SWI (30 -3F reserved) 20h 1Fh ROM BIOS SWI 10h 0Fh IRQ 7 LPT1 0Eh IRQ6 Floppy Disk 0Dh IRQ5 LPT2 0Ch IRQ4 COM1 Port 0Bh IRQ3 COM2 Port 00028 0Ah IRQ2 Cascade from Slave 8259 00024 09h IRQ1 Keyboard 00020 08h IRQ0 Timer tick 07h 80x87 not present 06h Invalid opcode 05h Print screen (BIOS) 04h Overflow 03h Break point instruction 02h NMI 01h Single step 0000 00h Divide by zero
  • © DHBK 2005 27/Chapter5 Nộ dung môn họ i c1. Giớ thiệ chung vềhệvi xửlý i u2. Bộvi xửlý Intel 8088/80863. Lậ trình hợ ngữcho 8086 p p4. Tổchứ vào ra dữliệ c u5. Ngắ và xửlý ngắ t t6. Truy cậ bộnhớtrự tiế DMA p c p7. Các bộvi xửlý trên thự tế c
  • Chư ng 6: Truy c ậ bộnhớtrự tiế p c p© DHBK 2005 28/Chapter5 ơ DMA• Giớ thiệ vềDMA i u• Mạ DMAC 8237A củ Intel ch a
  • © DHBK 2005 29/Chapter5 Giớ thiệ vềDMA i u
  • © DHBK 2005 30/Chapter5 Mạ DMAC 8237A củ Intel ch a
  • © DHBK 2005 31/Chapter5 Mạ DMAC 8237A củ Intel ch a• Although i8237A may not appear as a discrete component in recent PCs, it’s still there… (integrated in chipsets, ISPC)• The i8237A has four independent DMA channels• Original PC/XT design had one i8237A for four DMA channels• PC/AT used two i8237As to provide 7 DMA channels• i8237A is programmable device and can be configured for single transfers, block transfers, Reads, Writes or Memory-to- Memory transfers
  • © DHBK 2005 32/Chapter5 Mạ DMAC 8237A củ Intel ch a• i8237A allows byte addressing for 8-bit data transfers• In the PC/AT design, a contrived 16-bit transfer design is implemented using the i8237A• i8237A uses a multiplexed address and data bus to reduce the device pin count. DB0..DB7 lines contain the data bus along with the high byte of the 16- bit address bus. An external latch is required to demultiplex the address lines
  • © DHBK 2005 33/Chapter5 Mạ DMAC 8237A củ Intel ch a
  • © DHBK 2005 34/Chapter5 Mạ DMAC 8237A củ Intel ch a
  • © DHBK 2005 35/Chapter5 Mạ DMAC 8237A củ Intel ch a
  • © DHBK 2005 36/Chapter5 How the PC uses the i8237A i8237A Address Latch and Page Registers I/O Mapped DM A A16..A23 to MPU, read Page [A16..A19 and write Regrs. for PC /XT ] DM A A8..A15 Addr. Latch IO R D B0..DB 7 IOW M EM R ADST B M EM W i8237 DM A A0..A7 A0..A7 four HR Q DMA channels DR EQ 0 Hi DAC K0 Q D HLD A DR EQ 1 15 usecs. DAC K1 OUT1 DR EQ 2 C LR DAC K2 8253 DR EQ 3 EO P DAC K3 (8254) Tim er/ Floppy Controller Counter
  • © DHBK 2005 37/Chapter5 DMA Address Tracking• The i8237A has four registers for tracking memory addresses during a DMA block  BASE ADDRESS REGISTER  BASE WORD COUNT REGISTER  CURRENT ADDRESS REGISTER  CURRENT WORD COUNT REGISTER
  • © DHBK 2005 38/Chapter5 DMA in the PC/XT
  • 39/Chapter5 DMA Cascadation© DHBK 2005 Cascaded i8237As in the PC/AT Cascaded i8237A DMA Controllers DREQ0 DACK0 DREQ1 DACK1 i8237A Slave DREQ2 DACK2 DREQ4 DREQ3 HRQ DACK4 DACK3 MPU HOLDA DREQ5 i8237A DACK5 Master DREQ6 DACK6 DREQ7 DACK7
  • © DHBK 2005 40/Chapter5 PC/AT DMA Channel priorities• DMA channel 0 (DREQ0) has the highest priority• DMA channel 7 (DREQ7) has the lowest• Note, when a DMA transfer is in session, it cannot be interrupted by another DMA request, even if the DMA request is made by a higher priority DMA channel.• The current DMA transfer session will be completed before the pending DMA request is accepted
  • © DHBK 2005 41/Chapter5 DMA Channels in the PC/AT DMA Priority Pre-defined 8-bit or Use in PC/AT 16-bit ____________________________________________________________ DREQ0 Highest Memory Refresh* 8-bits DREQ1 Not defined 8-bits DREQ2 Floppy Disk 8-bits DREQ3 Not defined 8-bits DREQ4 Cascade not used DREQ5 Not defined 16-bits DREQ6 Not defined 16-bits DREQ7 Lowest Not defined 16-bits
  • © DHBK 2005 1/Chapter6 Nộ dung môn họ i c1. Giớ thiệ chung vềhệvi xửlý i u2. Bộvi xửlý Intel 8088/80863. Lậ trình hợ ngữcho 8086 p p4. Tổchứ vào ra dữliệ c u5. Ngắ và xửlý ngắ t t6. Truy cậ bộnhớtrự tiế DMA p c p7. Các bộvi xửlý trên thự tế c
  • Chư ng 6: Truy c ậ bộnhớtrự tiế p c p© DHBK 2005 2/Chapter6 ơ DMA• Giớ thiệ vềDMA i u• Mạ DMAC 8237A củ Intel ch a
  • © DHBK 2005 3/Chapter6 Giớ thiệ vềDMA i u
  • © DHBK 2005 4/Chapter6 Mạ DMAC 8237A củ Intel ch a
  • © DHBK 2005 5/Chapter6 Mạ DMAC 8237A củ Intel ch a• Although i8237A may not appear as a discrete component in recent PCs, it’s still there… (integrated in chipsets, ISPC)• The i8237A has four independent DMA channels• Original PC/XT design had one i8237A for four DMA channels• PC/AT used two i8237As to provide 7 DMA channels• i8237A is programmable device and can be configured for single transfers, block transfers, Reads, Writes or Memory-to- Memory transfers
  • © DHBK 2005 6/Chapter6 Mạ DMAC 8237A củ Intel ch a• i8237A allows byte addressing for 8-bit data transfers• In the PC/AT design, a contrived 16-bit transfer design is implemented using the i8237A• i8237A uses a multiplexed address and data bus to reduce the device pin count. DB0..DB7 lines contain the data bus along with the high byte of the 16- bit address bus. An external latch is required to demultiplex the address lines
  • © DHBK 2005 7/Chapter6 Mạ DMAC 8237A củ Intel ch a
  • © DHBK 2005 8/Chapter6 Mạ DMAC 8237A củ Intel ch a
  • © DHBK 2005 9/Chapter6 Mạ DMAC 8237A củ Intel ch a
  • © DHBK 2005 10/Chapter6 How the PC uses the i8237A i8237A Address Latch and Page Registers I/O Mapped DM A A16..A23 to MPU, read Page [A16..A19 and write Regrs. for PC /XT ] DM A A8..A15 Addr. Latch IO R D B0..DB 7 IOW M EM R ADST B M EM W i8237 DM A A0..A7 A0..A7 four HR Q DMA channels DR EQ 0 Hi DAC K0 Q D HLD A DR EQ 1 15 usecs. DAC K1 OUT1 DR EQ 2 C LR DAC K2 8253 DR EQ 3 EO P DAC K3 (8254) Tim er/ Floppy Controller Counter
  • © DHBK 2005 11/Chapter6 DMA Address Tracking• The i8237A has four registers for tracking memory addresses during a DMA block  BASE ADDRESS REGISTER  BASE WORD COUNT REGISTER  CURRENT ADDRESS REGISTER  CURRENT WORD COUNT REGISTER
  • © DHBK 2005 12/Chapter6 DMA in the PC/XT
  • 13/Chapter6 DMA Cascadation© DHBK 2005 Cascaded i8237As in the PC/AT Cascaded i8237A DMA Controllers DREQ0 DACK0 DREQ1 DACK1 i8237A Slave DREQ2 DACK2 DREQ4 DREQ3 HRQ DACK4 DACK3 MPU HOLDA DREQ5 i8237A DACK5 Master DREQ6 DACK6 DREQ7 DACK7
  • © DHBK 2005 14/Chapter6 PC/AT DMA Channel priorities• DMA channel 0 (DREQ0) has the highest priority• DMA channel 7 (DREQ7) has the lowest• Note, when a DMA transfer is in session, it cannot be interrupted by another DMA request, even if the DMA request is made by a higher priority DMA channel.• The current DMA transfer session will be completed before the pending DMA request is accepted
  • © DHBK 2005 15/Chapter6 DMA Channels in the PC/AT DMA Priority Pre-defined 8-bit or Use in PC/AT 16-bit ____________________________________________________________ DREQ0 Highest Memory Refresh* 8-bits DREQ1 Not defined 8-bits DREQ2 Floppy Disk 8-bits DREQ3 Not defined 8-bits DREQ4 Cascade not used DREQ5 Not defined 16-bits DREQ6 Not defined 16-bits DREQ7 Lowest Not defined 16-bits
  • © DHBK 2005 Nộ dung môn họ i c1. Giớ thiệ chung vềhệvi xửlý i u2. Bộvi xửlý Intel 8088/80863. Lậ trình hợ ngữcho 8086 p p4. Tổchứ vào ra dữliệ c u5. Ngắ và xửlý ngắ t t6. Truy cậ bộnhớtrự tiế DMA p c p7. Các bộvi xửlý trên thự tế c1
  • © DHBK 2005 Chư ng 7: Cá c bộvi xửlý trên thự tế ơ c• General purpose microprocessors Intel 80x86 Xu hư ng phát triể ớ n• Microcontrollers Vi đ u khiể củ Motorola iề n a Họvi đ u khiể 8051 iề n Họvi đ u khiể AVR iề n PSOC Xu hư ng phát triể ớ n• Digital signal processors Texas Instruments Motorola Philips Xu hư ng phát triể ớ n2
  • © DHBK 2005 Chư ng 7: Cá c bộvi xửlý trên thự tế ơ c• General purpose microprocessors Intel 80x86 Xu hư ng phát triể ớ n• Microcontrollers Vi đ u khiể củ Motorola iề n a Họvi đ u khiể 8051 iề n Họvi đ u khiể AVR iề n PSOC Xu hư ng phát triể ớ n• Digital signal processors Texas Instruments Motorola Philips Xu hư ng phát triể ớ n3
  • © DHBK 2005 Intel 4004 • First microprocessor (1971) • 4-bit processor • 2300 Transistors (P- MOS), 10  m • 0.06 MIPS, 108 KHz, 640 bytes addressable memory • -15V power supply4
  • © DHBK 2005 Intel 8008 • First 8-bit processor (1972) • Cost $500; at this time, a 4-bit processor costed $50 • Complete system had 2 Kbyte RAM • 200 KHz clock frequency, 10  3500 m, TOR, 0.06 MIPS, 16 Kbyte addressable memory • 18 pin package, multiplexed address and data bus5
  • © DHBK 2005 Intel 8080 • Second gen. 8-bit processor, introduced in 1974 • 40 pin package, NMOS, 500K instructions/s, 6  2 MHz, ±5V & m, +12V power supply, 6 KTOR, 0.64 MIPS • 64 Kbyte address space (“as large as designers want”, EDN 1974)6
  • © DHBK 2005 Intel 8088 • 16-bit processor • introduced in 1979 • 3  5 a 8 MHz, 29 m, KTOR, 0.33 a 0.66 MIPS, 1 Mbyte addressable memory7
  • © DHBK 2005 Intel 8086 16 16 bit integer CPU data 20 address• Introduced: 1978• Clock frequency: 8 - 10 MHz8
  • © DHBK 2005 Intel 80286 16 MMU 16 bit integer CPU data 24 address• Introduced: 1983• 1.5  134 KTOR, 0.9 to 2.6 MIPS m,• Clock frequency: 6 - 25 MHz9
  • © DHBK 2005 Intel 80386sx 16 MMU 32 bit integer CPU data 24 address• Introduced: 1986• 1  275 KTOR, 16 to 33 MHz, 5 to 11 MIPS m,• Clock frequency: 16 - 25 MHz• Software support and hardware protection for multitasking10
  • © DHBK 2005 Intel 80386dx 32 MMU 32 bit integer CPU data 32 address• Introduced: 1988• Clock frequency: 16 - 40 MHz• Software support and hardware protection for multitasking11
  • © DHBK 2005 Intel 80486dx 32 8 Kbyte cache 32 bit integer CPU data MMU 64 bit FPU 32 address• Introduced: 1989• Clock frequency: 25 - 50 MHz• Software support and hardware protection for multitasking• Support for parallel processing• Cache required: external memory is not fast enough12
  • © DHBK 2005 Intel 80486sx 32 8 Kbyte cache 32 bit integer CPU data MMU 32 address• Introduced: 1989• 0.8  1.2 MTOR, 20 to 41 MIPS m,• Clock frequency: 25 - 50 MHz• Software support and hardware protection for multitasking• Support for parallel processing• Cache required: external memory is not fast enough13
  • © DHBK 2005 Intel 80486dx2 32 8 Kbyte cache 32 bit integer CPU data MMU 64 bit FPU 32 address• Introduced: 1992• Clock frequency: internal: 50 - 66 MHz, external: 25 - 33 MHz• Software support and hardware protection for multitasking• Support for parallel processing• Cache required: external memory is not fast enough14
  • © DHBK 2005 Intel Pentium 8 Kbyte 32 bit integer 64 program cache pipelined CPU data 8 Kbyte 32 bit integer 32 data cache pipelined CPU address Static branch 64 bit FPU prediction unit MMU• Introduced: 1993• (.8  3.1 MTOR) up to (.35 mm, 4.5 MTOR incl. MMX) m,• Clock frequency: internal: 60 - 166 MHz, external: 66 MHz• Support for parallel processing: cache coherence protocol• Super scalar15
  • © DHBK 2005 Intel Pentium Pro 8 Kbyte L1 32 bit integer 64+ECC program cache pipelined CPU data 8 Kbyte L1 32 bit integer 36 data cache pipelined CPU address Dynamic branch 32 bit integer prediction unit pipelined CPU 64 bit MMU pipelined FPU to L2 cache Instruction Address dispatch unit generation unit• Introduced: 1995, 0.35  3.3 V, 5.5 MTOR, 35W, 387 pin m,• Clock frequency: 150 - 200 MHz Internal, 60 - >100 MHz External• Super scalar (4 Instr./cycle), super pipelined (12 stages)• Support for symmetrical multiprocessing ( CPU) 4• MCM: 256-1024 Kbyte L2 4-way set associative cache16
  • © DHBK 2005 Intel Pentium II 16 Kbyte L1 32 bit integer 64+ECC program cache pipelined CPU data 16 Kbyte L1 32 bit integer 36 data cache pipelined CPU address Dynamic branch 64 bit prediction unit pipelined FPU 64 bit ECC MMU pipelined FPU to L2 cache Instruction Address dispatch unit generation unit• Introduced: 1997, 0.25  2.0 V, 9 MTOR, 43 W, 242 pin m,• Clock frequency: 200 - 550 MHz Internal, 100 - 225 MHz L2 cache, 66 - 100 MHz External• Super scalar (4 Instr./cycle), super pipelined (12 stages)• Support for symmetrical multiprocessing ( CPU) 8• Single Edge Contact Cartridge with Thermal Sensor: 256-1024 Kbyte L2 4-way set associative cache17
  • Intel Pentium III© DHBK 2005 16 Kbyte L1 program cache 16 Kbyte L1 32 bit integer 64+ECC data cache pipelined CPU data 256 Kbyte L2 unified 32 bit integer 36 cache pipelined CPU address Dynamic branch 64 bit prediction unit pipelined FPU 64 bit MMU pipelined FPU Instruction Address dispatch unit generation unit• Introduced: 1999, 0.18  , 6LM, 1.8 V, 28 MTOR, 370 pin m• Clock frequency: 450 - 1130 MHz Internal, 100-133 MHz External• Super scalar (4 Instr./cycle), super pipelined (12 stages)• Support for symmetrical multiprocessing ( CPU) 218
  • Intel Pentium IV© DHBK 2005 16 Kbyte L1 program cache 16 Kbyte L1 32 bit integer 64+ECC data cache pipelined CPU data 32 bit integer 256/512/1024 Kbyte L2 36 pipelined CPU address Dynamic branch 64 bit prediction unit pipelined FPU 64 bit MMU pipelined FPU Instruction Address dispatch unit generation unit• Introduced: 2002, 0.13  or 90nm , 1.8 V, 55 MTOR m• Clock frequency: 1,4 to 3.8 GHz Internal, 400 to 800 MHz External• Super scalar (4 Instr./cycle), super pipelined (12 stages)• Newer versions: Hyper threading, 3.8 MHz19
  • Intel Pentium IV© DHBK 2005• Available at 3.80F GHz, 3.60F GHz, 3.40F GHz and 3.20F GHz• • Supports Hyper-Threading Technology1 (HT Technology) for all frequencies with 800 MHz front side bus (FSB)• • Supports Intel® Extended Memory 64Technology2 (Intel® EM64T)• Supports Execute Disable Bit capability• Binary compatible with applications running on previous members of the Intel microprocessor line• Intel NetBurst® microarchitecture• FSB frequency at 800 MHz• Hyper-Pipelined Technology• Advance Dynamic Execution• Very deep out-of-order execution• Enhanced branch prediction• 775-land Package20
  • Intel Pentium IV© DHBK 2005• 16-KB Level 1 data cache• 1-MB Advanced Transfer Cache (on-die, fullspeed Level 2 (L2) cache) with 8-way associativity and Error Correcting Code (ECC)• 144 Streaming SIMD Extensions 2 (SSE2) instructions• 13 Streaming SIMD Extensions 3 (SSE3) instructions• Enhanced floating point and multimedia unit for enhanced video, audio, encryption, and 3D performance• Power Management capabilities• System Management mode• Multiple low-power states• 8-way cache associativity provides improved cache hit rate on load/store operations21
  • © DHBK 2005 IA-64 (Itanium)• Design started in 1994; first samples on the market in 2001• 64-bit address space (4x109 Gbyte; we will never need that much…)• 256 64-bit integer and 128 82-bit floating point registers; 64 branch target registers; 64 1-bit predicate registers• 41 bit instruction word length• 10-stage pipeline• separate L1 data and program, 96 Kbyte L2 unified on-chip, 4 Mbyte L3 unified off-chip22
  • © DHBK 2005 Chư ng 7: Cá c bộvi xửlý trên thự tế ơ c• General purpose microprocessors Intel 80x86 Xu hư ng phát triể ớ n• Microcontrollers Vi đ u khiể củ Motorola iề n a Họvi đ u khiể 8051 iề n Họvi đ u khiể AVR iề n PSOC Xu hư ng phát triể ớ n• Digital signal processors Texas Instruments Motorola Philips Xu hư ng phát triể ớ n23
  • Trends for general purpose© DHBK 2005 processors• Higher clock frequencies: 4.7 -> 30 GHz• Faster memory: 120 ns -> 50 ns not proportional to clock frequency increase => use of caches and special DRAM memories (e.g. SDRAM)• Limited by power dissipation => decreasing power supply voltage• Parallel processing• Memory with processor instead of processor with memory24
  • © DHBK 2005 The future: general characteristics Roadmap 2001 2002 2004 2007 2010 2013 2016 Roadmap 1998 1997 1999 2002 2005 2008 2011 2014 Roadmap 1995 1995 1998 2001 2004 2007 2010 Line width (nm) 350 250 180 130 90 65 45 32 22 Number of 18 22 22- 24 24- 26- 28 29- masks 24 26 28 30 Wafer size 200 200 300 300 300 300 (mm) Number of 4-5 6 6-7 7 7-8 8-9 9 10 wiring levels Power supply 3.3 1.8- 1.5- 1.1- 1.0- 0.7- 0.6 0.5 0.4 V: desktop 2.5 1.8 1.5 1.2 0.9 Max. power 80 70 90 130 160 170 175 183 dissipation/chip Will 22 nm be the end of the scaling race for CMOS? Some believe10 nm will be the end… …thereafter, semiconductor drive will be scattered (MEMS, sensors, magnetic, optic, polymer, bio, …) Depending on application domain: besides and beyond silicon25
  • Besides and beyond silicon (e.g.© DHBK 2005 polymer electronics)26
  • © DHBK 2005 Besides and beyond silicon: applied to future ambient intelligent environments27 © Emile Aarts, HomeLab, Philips
  • © DHBK 2005 Besides and beyond silicon: applied to future ambient intelligent environments28 © Emile Aarts, HomeLab, Philips
  • © DHBK 2005 Besides and beyond silicon: applied to ambient intelligent HomeLab (2002)29 © Emile Aarts, HomeLab, Philips
  • © DHBK 2005 The future: high performance ( ) P Roadmap 2001 2001 2004 2007 2012 2016 Roadmap 1998 1997 1999 2002 2005 2008 2011 2014 Roadmap 1995 1995 1998 2001 2004 2007 2010 Number of TOR 6M 11M 21M 76M 200M 520M 1.4G 3.6G On chip local 750 1250 2100 3500 6000 10000 16903 clock freq. (MHz) On chip global 300 375 1200 1600 2000 2500 3000 3674 clock freq. (MHz) Chip size (mm2 ) 250 300 340 430 520 620 750 901• CTO Intel says in 2001 2005 425 MTOR 100 nm 1600 mm2 30 GHz on chip without specific measures like individual transistor power- down: 3000 W, i.e. 3000 amps... 1.8 GTOR in 201030
  • © DHBK 2005 The future: high performance ( ) P31
  • © DHBK 2005 Processor performance Performance 1M 100K 10K 55%/year 1K 100 10 1 Time 1980 1985 1990 1995 2000 2005 Exponential growth for 3 decades! This is called ‘Moore’s law’: number of transistors doubles every 18 months (Gordon Moore, founder Intel Corp.)32
  • © DHBK 2005 Processor performance• Smaller line size More transistors => parallelism 1983: 1 instruction per 4 clock cycles 2002: 8 instructions per clock cycle Smaller capacitors => faster 1983: 4 MHz 2002: 2800 MHz Speed-up: 25000• Enables new applications UMTS with large rolled-up OLED screen enabling web downloadable services (e.g. virtual meetings)• Do we find applications that are demanding enough for next decade’s processors?33
  • © DHBK 2005 The future: DRAM Roadmap 2001 2003 2007 2011 2016 ? ? Roadmap 1998 1997 1999 2002 2005 2008 2011 2014 Roadmap 1995 1995 1998 2001 2004 2007 2010 Number of bits 64M 256M 1G 4G 16G 64G 256G 1T per chip Chip size (mm 2) 190 280 400 560 790 1120 1580 224034
  • © DHBK 2005 Memory density Performance 1M Processor 100K 10K 55%/year Gap 1K 100 10 Memory 10%/year 1 Time 1980 1985 1990 1995 2000 200535
  • © DHBK 2005 Memory density• Skills: center of gravity USA: processors (Intel, Motorola, TI, …) Japan: memory (NEC, Toshiba, …) Future: IC = processor + memory Where???• Memory density grows faster than needs 1983: 512 Kbyte @ 64 Kbit/chip = 64 chips/PC 2001: 256 Mbyte @ 512 Mbit/chip = 4 chips/PC Compensated if you sell at least 16 times more PCs… … or if you find new applications (UMTS, car,…) 2010: 4 Gbyte @ 64 Gbit/chip = 0.5 chip/PC No need for such a large memory chip… … unless you find new applications (3D video…)36
  • © DHBK 2005 Power consumption Power (W/cm2) 1K Nuclear reactor 100 Hot plate P4 P II P III 10 P P Pro 386 486 1 1.5 1 0.7 0.5 0.35 0.25 0.18 0.13 0.1Line width Processor architecture design driven by memory bottleneck & power problem! Nevertheless, ‘cooling tower’ is necessary!37 © Fred Pollack, Keynote at Micro99
  • © DHBK 2005 Power consumption Cooling “tower”38
  • © DHBK 2005 Power consumption• Let us do a calculation: How long could a GSM using a Pentium 3 (hardly powerful enough…) last on a single battery charge? Capacity of a battery: 600 mAh @ 4V = 2400 mWh Power consumption Pentium 3: 45 W One charge lasts for … 3 minutes!!!• Let us turn the computation upside down: We want a GSM to last for 240 hours on a single charge. How much power may be consumed by the processor? Capacity of a battery: 600 mAh @ 4V = 2400 mWh Power consumption processor: 10 mW Possible via specialization to the application: dedicated hardware…39
  • © DHBK 2005 Summary on technological trends• Technologically speaking, we can have the same exponential evolution for another decade• This gives us at least 4 decades of exponential evolution, never seen in history• End-user price stayed the same or even decreased Since 30 years, the price for a brand new processor is 1000 USD• So far for the good news…40
  • © DHBK 2005 Design issues Performance Design 1M complexity 100K 10K 55%/year Gap 1K 100 Design 10 productivity 10%/year 1 Time 1980 1985 1990 1995 2000 2005 Unfortunately, Gordon Moore’s law is also valid for the design complexity, which doubles every 18 months… … and worse, design productivity doubles only every 10 years41
  • © DHBK 2005 Design issues• We can build exponentially complex circuits, but we cannot design them Design of Pentium 4: 8 years, during last 2 years with a team of 1000 persons Who can afford this???42
  • © DHBK 2005 Chư ng 7: Cá c bộvi xửlý trên thự tế ơ c• General purpose microprocessors Intel 80x86 Xu hư ng phát triể ớ n• Microcontrollers Vi đ u khiể củ Motorola iề n a Họvi đ u khiể 8051 iề n Họvi đ u khiể AVR iề n PSOC Xu hư ng phát triể ớ n• Digital signal processors Texas Instruments Motorola Philips Xu hư ng phát triể ớ n43
  • © DHBK 2005 Giớ thiệ vềvi đề khiể i u i u n• Vi đ u khiể = CPU + Bộnhớ+ các khố ghép nố iề n i i ngoạ vi + các khố chứ nă i i c ng EEPROM RAM ADC/DAC Timer Bộtạ xung nhị o p PWM UART USB ...44
  • © DHBK 2005 Vi xửlý vs. Vi đề khiể i u n• Vi xửlý là mộ CPU đ ợ sửdụ trong các máy t ưc ng tính.• Các vi bộđ u khiể và các bộvi xửlý có ba đ m iề n iể khác nhau chính sau:kiế trúc phầ cứ n n ng, phạ vi m ứ dụ ng ng, và đ c đ m tậ lệ ặ iể p nh.• Kiế trúc phầ cứ n n ng: Mộ bộvi xửlý chỉ mộ CPU t là t đ n lẻtrong khi mộ bộvi đ u khiể là mộ IC chứ ơ t iề n t a CPU và các mạ ngoạ vi chính củ mộ máy tính ch i a t hoàn chỉ (nhưRAM, ROM, giao diệ nố tiế giao nh n i p, diệ song song, bộđnh thờ mạ xửlý ngắ n ị i, ch t)• Ứng dụ ng: Vi xửlý thư ng đ ợ dùng nhưmộ CPU ờ ưc t trong các máy tính trong khi các vi đ u khiể đ ợ iề n ưc sửdụ trong các thiế bị ng t nhỏđ iề khiể các ểđ u n hoạ đ ng. t ộ45
  • © DHBK 2005 Vi xửlý vs. Vi đề khiể i u n • Tậ lệ p nh: Tậ lệ củ vi xửlý thiên vềxửlý dữliệ p nh a u. Chúng có thểlàm việ vớ 4 bit, byte, word, thậ chí c i m double word. Chếđ ị chỉ ộđa cho phép truy nhậ các mả dữliệ lớ p ng u n bằ cách sửdụ con trỏvà đa chỉ ng ng ị offset. Tậ lệ củ vi đ u khiể dùng đ iề khiể các truy p nh a iề n ểđ u n nhậ vào và ra. p Chúng có các lệ cho phép thiế lậ và xoá các bit nh t p riêng rẽvà thự hiệ các thao tác vớ bit. c n i Có các lệ cho các hoạ đ ng vào/ra, đ thờ gian các nh t ộ o i sựkiệ cho phép và thiế lậ các mứ đ u tiên cho n, t p c ộư các ngắ ngoài. t • Khảnă xửlý củ vi đ u khiể thấ hơ rấ ng a iề n p n t nhiề so vớ vi xửlý. u i46
  • © DHBK 2005 Microcontroller facts• 99% processor market• Shipments- > 16 Billion in 2000, 8 bit > 1/2 market• Major Players: Microchip 16Fxx, Intel 8051, Motorola MC68HC05, National COP800, SGS/Thomson ST62, Zilog Z86Cxx47
  • © DHBK 2005 Motorola MC68331 32 bit 16 2 Timers integer CPU data 1 Serial asynch. FT unit: watchdog 24 Buffered I/O clock&bus monitor address 12 Programmable chip selects 7 Interrupt logic• Clock frequency: > 16 MHz• MC683xx: modular microcontroller unit: MC68000 core plus customized peripherals48
  • © DHBK 2005 Motorola MC68332 32 bit 16 Timer PU integer CPU data 1 Serial asynch. FT unit: watchdog 24 Buffered I/O clock&bus monitor address 12 Programmable 2 Kbyte RAM chip selects 7 Interrupt logic 48 Parallel I/O• Clock frequency: > 16 MHz• MC683xx: modular microcontroller unit: MC68000 core plus customized peripherals49
  • © DHBK 2005 Motorola MC68340 32 bit 16 2 Timers integer CPU data 2 Serial asynch. FT unit: watchdog 32 I/O clock&bus monitor address 4 Programmable 2 channel chip selects DMA controller 7 Interrupt logic 16 Parallel I/O• Clock frequency: > 16 MHz• MC683xx: modular microcontroller unit: MC68000 core plus customized peripherals50
  • © DHBK 2005 Motorola MC68F333• 64 Kbyte on chip flash EEPROM• 68020 processor• 4 Kbyte SRAM• 8 channel 10-bit ADC• 16 channel 16-bit timer• several interfaces• Introduced in 199451
  • © DHBK 2005 Motorola MC68HC16• 16-bit microprocessor• Introduced in 1994 www.freescale.com52
  • © DHBK 2005 Chư ng 7: Cá c bộvi xửlý trên thự tế ơ c• General purpose microprocessors Intel 80x86 Xu hư ng phát triể ớ n• Microcontrollers Vi đ u khiể củ Motorola iề n a Họvi đ u khiể 8051 iề n Họvi đ u khiể AVR iề n PSOC Xu hư ng phát triể ớ n• Digital signal processors Texas Instruments Motorola Philips Xu hư ng phát triể ớ n53
  • © DHBK 2005 Họvi đề khiể 8051 i u n • Hiệ nay có hơ 40 công ty sả xuấ các loạ vi n n n t i đ u khiể khác nhau củ họ8051. iề n a • Mộ sốcông ty có trên 40 version 8051. t • Các CORE 8051 có thểđ ợ tổhợ trong các ưc p FPGA hay ASIC. • Trên 100 triệ vi đ u khiể 8051 đ ợ bán ra mỗ u iề n ưc i nă m. • Họ8051 gặ hái đ ợ rấ nhiề thành công và nó t ưc t u cũ trự tiế ả hư ng đ n cấ trúc củ các họ ng c p nh ở ế u a vi đ u khiể hiệ nay. iề n n54
  • © DHBK 2005 MCS-51• 8051 thuộ họvi đ u khiể MCS-51. c iề n• MCS-51 đ ợ phát triể bở Intel và các nhà sả ưc n i n xuấ khác (nhưSiemens, Philips) là các nhà cung t cấ đ ng thứhai củ họnày. p ứ a• Tóm tắ mộ sốđ c đ m chính củ họ8051: t t ặ iể a 4K bytes ROM trong 128 bytes RAM trong 4 cổ I/O 8-bit ng 2 bộđnh thờ 16 bit ị i Giao diệ nố tiế n i p Quả lý đ ợ 64K bộnhớcode bên ngoài n ưc Quả lý đ ợ 64K bộnhớdữliệ bên ngoài n ưc u55
  • © DHBK 2005 Họvi đề khiể 8051 i u n C¸c ng¾t ngoµi C¸c sù kiÖn cÇn ®Õm Ram trong Thanh ghi 128 byte FF chøc n¨ng ram ®Æc biÖt Nguån 80 §iÒu khiÓn Ng¾t 128 byte 7F ng¾t Trong RAM 00 CPU Bé Qu¶n Port Port Port Port Cæng dao ®éng lý Bus 0 1 2 3 nèi tiÕp XTAL 1,2 PSEN ALE §Þa chØ §Þa Më réng56 thÊp/d÷ liÖu chØ cao trong 8032
  • © DHBK 2005 Tham khảo• Họvi đ u khiể 8051 iề n• www.atmel.com/products/8051/• http://chaokhun.kmitl.ac.th/~kswichit/• http://www.sunrom.com/57
  • © DHBK 2005 Chư ng 7: Cá c bộvi xửlý trên thự tế ơ c• General purpose microprocessors Intel 80x86 Xu hư ng phát triể ớ n• Microcontrollers Vi đ u khiể củ Motorola iề n a Họvi đ u khiể 8051 iề n Họvi đ u khiể AVR iề n PSOC Xu hư ng phát triể ớ n• Digital signal processors Texas Instruments Motorola Philips Xu hư ng phát triể ớ n58
  • © DHBK 2005 Họvi đề khiể AVR i u n Bus d÷ liÖu 8 bÝt Bé nhí flash Bé ®Õm Tr¹ng th¸i vµ Thanh ghi 1k x 16 cho ch-¬ng tr×nh kiÓm tra ®iÒu khiÓn ch-¬ng tr×nh Thanh ghi §¬n vÞ ng¾t Thanh ghi ®a n¨ng lÖnh 32 x 8 §¬n vÞ SPI UART nèi tiÕp Bé gi¶i m· lÖnh ALU Timer/Counter 8 bÝt C¸c ®-êng ®iÒu Timer/Counter khiÓn 128 x 8 Data 16 bit víi SRAM Bé PWM ®Þnh thêi watchdog 128x8 Bé so s¸nh analog EEPROM 15 ®-êng dÉn vµo/ra59
  • © DHBK 2005 Chư ng 7: Cá c bộvi xửlý trên thự tế ơ c• General purpose microprocessors Intel 80x86 Xu hư ng phát triể ớ n• Microcontrollers Vi đ u khiể củ Motorola iề n a Họvi đ u khiể 8051 iề n Họvi đ u khiể AVR iề n PSOC Xu hư ng phát triể ớ n• Digital signal processors Texas Instruments Motorola Philips Xu hư ng phát triể ớ n60
  • © DHBK 2005 Giớ thiệ chung vềPSoC i u• PSoC là gì? Do hãng Cypress sả xuấ n t Mộ loạ công nghệ mớ phát triể trong vài nă gầ đ t i IC i n m n ây. Khảnă tích hợ đ ng các loạ linh kiệ sốvà tư ng tựđ ng p ộ i n ơ ể tạ ra các khố sốhoặ tư ng tựvớ chứ nă o i c ơ i c ng tuỳthuộ c ngư i dùng. ờ Kế hợ vớ mộ vi đ u khiể trung tâm. t p i t iề n61
  • © DHBK 2005 Cấ trúc PSoC u• Lõi PSoC Vi xửlý 8bit, 24MHz, 4MIPS Flash ROM (từ16K) RAM (128b-2kb) Bộđ u khiể ngắ iề n t Bus• Các khố số I Flip-Flop, cổ logic ng• Các khố tư ng tự I ơ Các bộkhuế đ I thuậ toán ch ạ t Đ n trở iệ Tụđ n đ u khiể đ iệ iề n óng ngắt• Tài nguyên hệthố ng• Đ c biệ Debugger core ặ t:62
  • © DHBK 2005 Ứng dụng Xửlý tín hiệu Giao tiế vớ cả biế p i m n • Phát hiệ sóng Sin n • Đ n trởnhiệ iệ t • Đ đ n áp o iệ • Cặ nhiệ p t • Đ tầ số o n • Đ tín hiệ hồ ngoạ thụđ ng o u ng I ộ • Đ n chế I đ u chế iề /giả iề • Thu siêu âm • Lọc • Đ áp suấ o t ơ • Nhân tư ng tự • FSK63
  • So sánh thiế kếgiữ VXL, VĐ , t a K VĐK© DHBK 2005 PSoC• Ứng dụng: Mạ đ đ n áp 0-5V, hiể thị ch o iệ n giá trịra LED Thiế kếphầ cứ t n ng Thiế kếphầ mề t n m Nguồ n Tư ng ơ Bộxửlý Hiể thị n đ n áp iệ tự/Số trung tâm LED Nguồ nuôi n64
  • © DHBK 2005 So sánh Vi xửlý Vi đ u khiể iề n PSoC Độphứ tạ c p Cao Trung bình Thấp phầ cứ n ng Giá thành Cao Trung bình Trung bình Đ n đnh ộổ ị Thấp Trung bình Cao Khảnă ng Khó Trung bình Dễ phát triể hệ n thống65
  • © DHBK 2005 Thiế kếhệthố sửdụ PSoC t ng ng• Chuẩ bị n IC Chư ng trình thiế kế PSoC Designer ơ t : Chư ng trình nạ và mạ nạ ơ p ch p• Các bư c thiế kếPSoC sửdụ PSoC designer ớ t ng Thiế kế“cứ t ng” Lự chọ “linh kiệ đ ư vào các khố số tư ng tự a n n” ểđ a I , ơ Đ a các linh kiệ vào các khố và kế nố ư n I t I Thiế lậ các thông số t p Lậ trình p Kích hoạ các linh kiệ Component_Start() t n: Viế các thuậ toán sửdụ linh kiệ t t ng n Vòng lặ vô tậ p n66
  • © DHBK 2005 Mộ sốlinh kiệ t n• ADC (6-14 bit)• DAC (6-9 bit)• Khuế đ I ch ạ• DTMF• Bộlọ (thông thấ thông dả c p, I)• Bộđ m, bộđnh thờ (8-24 bit) ế ị I• Dồ kênh: số ơ tự n +tư ng• Các linh kiệ số I2C, UART, giao tiế LCD, mã CRC, n : p mã giảngẫ nhiên, giao tiế chuẩ thu /phát hồ u p n ng ngoại67
  • © DHBK 2005 Chọ linh kiệ n n Linh kiệ trong hệthố n ng Tài nguyên hệ thống Chọ n Hư ng ớ linh dẫ sử n kiện dụ ng linh kiện68
  • © DHBK 2005 Thiế kế tThôngsốchung IC S BUThông n Châsốlinh Sốkiện Tư ng tự ơ69
  • © DHBK 2005 Lậ trình p Quả lý n theo dự án70
  • © DHBK 2005 Chư ng 7: Cá c bộvi xửlý trên thự tế ơ c• General purpose microprocessors Intel 80x86 Xu hư ng phát triể ớ n• Microcontrollers Vi đ u khiể củ Motorola iề n a Họvi đ u khiể 8051 iề n Họvi đ u khiể AVR iề n PSOC Đ u khiể trong công nghiệ PLC iề n p Xu hư ng phát triể ớ n• Digital signal processors Texas Instruments Motorola Philips71 Xu hư ng phát triể ớ n
  • © DHBK 2005 PLC (Programmable Logic Controller)• PLC = CPU + giao diệ vào ra n• Đ c đ m củ PLC: ặ iể a Giá thành hợ lý cho các ứ dụ đ u khiể phứ tạ p ng ng iề n c p Chị đ ợ rung đ ng, nhiệ ẩ tiế ồ và có đ u ưc ộ t, m, ng n ộbề cao n Có sẵ giao diệ cho các thiế bị n n t vào và thiế bị t ra Lậ trình dễdàng vớ ngôn ngữlậ trình đ n giả chủyế p i p ơ n, u giả quyế các phép toán logic và chuyể mạ i t n ch• PLC đ ợ dùng chủyế đ iề khiể trong công ưc u ểđ u n nghiệp: Đ u iề khiển bă chuyề ng n Đ u iề khiển thang máy Đ u iề khiển máy tựđ ng: máy khoan, máy sấ … ộ y Đ u iề khiển đ giao thông èn …72
  • © DHBK 2005 Cấ trúc củ hệthố PLC u a ng Bộnhớlư trữ u chư ng trình ơ Tín hiệu Tín hiệu ra vào PLC Giao Giao diện Vi xử lý diệ n vào ra73
  • © DHBK 2005 Cấ trúc bên ngoài u74
  • © DHBK 2005 Chư ng 7: Cá c bộvi xửlý trên thự tế ơ c• General purpose microprocessors Intel 80x86 Xu hư ng phát triể ớ n• Microcontrollers Vi đ u khiể củ Motorola iề n a Họvi đ u khiể 8051 iề n Họvi đ u khiể AVR iề n PSOC Xu hư ng phát triể ớ n• Digital signal processors Texas Instruments Motorola Philips Xu hư ng phát triể ớ n75
  • © DHBK 2005 Trends for microcontrollers• Standard CPU core surrounded by peripherals taken from a vast library• Single architecture line is whole family different memory & on-chip peripherals for embedded applications Deterministic behavior no caches, no virtual memory, but on-chip RAM no out-of-order execution delayed branch prediction76
  • © DHBK 2005 Trends for microcontrollers• Word length as small as possible 4 bit: 2% 8 bit: 36% 16 bit: 25% 32 bit: 34% 64 bit: 3%• Not pushing the limits of performance for cost reasons77
  • © DHBK 2005 Chư ng 7: Cá c bộvi xửlý trên thự tế ơ c• General purpose microprocessors Intel 80x86 Xu hư ng phát triể ớ n• Microcontrollers Vi đ u khiể củ Motorola iề n a Họvi đ u khiể 8051 iề n Họvi đ u khiể AVR iề n PSOC Xu hư ng phát triể ớ n• Digital signal processors Texas Instruments Motorola Philips Xu hư ng phát triể ớ n78
  • Texas Instruments TMS320C20x© DHBK 2005 Low end consumer Fixed Point Dual access fixed MAC 16 data RAM 16x16+32->32 data PROM Selection of 18 peripherals: address serial comm., Loop controller timers,... I/O 16 data 16 address• Series continued; typical app.: Digital camera, feature-phones, disk drives, Point-of-Sales Terminal• 40 MHz, 3.3-5V, 3LM• Available as core79
  • Texas Instruments TMS320C24x© DHBK 2005 Low end consumer Fixed Point Dual access fixed MAC 16 data RAM 16x16+32->32 data PROM 8 output PWM 16 address Loop controller 8 channel A/D Selection of CAN bus peripherals: controller serial comm., timers,... watchdog• Series continued; typical app.: electrical motor control• 50 MHz, 5V80
  • Texas Instruments TMS320C3x© DHBK 2005 Floating Point 32 bit 32 XRAM floating add data 32 bit YRAM 24 floating multiply address PRAM ACU I/O 32 Loop controller ACU data Selection of 24 peripherals: address serial comm., timers, DMA, ...• Series discontinued; typical app.: speech, audio• 60 MHz, 3.3-5V, 144 pin• Super scalar81
  • Texas Instruments TMS320C4x© DHBK 2005 Floating Point Message Passing 20 MB/s 32 bit 32 4KByte XRAM floating add data 32 bit 4KByte YRAM 32 floating multiply address 8 PRAM ACU 32 Loop controller ACU data 12 channel 32 DMA controller Serial link, address timers• Series discontinued; typical app.: prototyping, radar• 60 MHz, 5V, 325 pin• Super scalar; message passing multiprocessor82
  • Texas Instruments TMS320C54xx© DHBK 2005 High end consumer Fixed Point Dual access Fixed ALU 32 XRAM 32+32->40 data Fixed Add YRAM 17 32+32->40 address Fixed multiply PROM 17x17->34 I/O 16 Loop controller Viterbi data 6 channel 16 ACU DMA controller address Buffered serial ACU links, timers, ...• Series continued; typical app.: GSM, set-top box, audio• 1.8-5V, max. 160 MHz, 144 pin, .15 (1999), 0.32mW/MIPS for the m core• Specialized on-chip unit: will occur more often in future• e.g. C5420: dual core + 2x100 MW on-chip SRAM83 e.g. C5402: 5$ for 100 MIPS
  • Texas Instruments TMS320C5510© DHBK 2005 High end consumer Fixed Point Dual access Fixed ALU XRAM (256 Kbyte) 32+32->40 YRAM Fixed Add 32 (64 Kbyte) 32+32->40 data PROM Fixed multiply 24 32 KByte 17x17->34 address P-cache Fixed multiply 24 KByte 17x17->34 I/O 16 Power Mgment Viterbi data 6 channel 16 ACU DMA controller address Buffered serial ACU links, timers, ...• Series continued; typical app.: UMTS handheld• 1.6V, 200 MHz, .15 (2000), 400 MIPS,0.05mW/MIPS (core), power m management per unit and per cycle•84 Specialized on-chip unit: will occur more often in future
  • Texas Instruments TMS320C8x© DHBK 2005 Fixed Point Video 2 Kbyte RAM1 DSP processor 1 32 DSP processor 2 address 2 Kbyte RAM 16 X- data DSP processor 3 bar 64 2 Kbyte I-cache1 DSP processor 4 2 Kbyte I-cache4 General purpose 4 Kbyte D-cache RISC processor 4 KByte I-cache Video controller Transfer 2 KByte RAM controller• Series discontinued; typical app.: video phone, video conferencing, multimedia workstations• Introduced: 1995, 50 MHz, 305 pin• Multiprocessor-on-a-chip; sub-word SIMD for each DSP85
  • Texas Instruments TMS320C6201© DHBK 2005 High end Fixed Point fixed MUL 16KByte D-SRAM External memory 16x16->32 fixed MUL 23 16KByte D-SRAM address 16x16->32 fixed ALU data 16KByte D-SRAM 32+32->40 32 fixed ALU 16KByte D-SRAM 32+32->40 64KByte fixed ALU/branch P-SRAM/cache 32+32->40 JTAG / clock pump fixed ALU/branch Host interface 4 channel DMA 32+32->40 Ext. memory integer ACU 17 address interface 32+32 2 Serial ports integer ACU data 2 Timers 32+32 16• Series continued; typical app.: modems, multimedia• 1997, 0.25  5ML, 352 pin, 200 MHz, 2.5V, 1.9W, $85 m,• Super scalar (8 Instr./cycle), 1600 MIPS•86 VLIW: 256 bit instruction word
  • Texas Instruments TMS320C6202© DHBK 2005 High end Fixed Point 2x16KByte D-RAM fixed MUL (Shadow load) 16x16->32 External memory 2x16KByte D-RAM fixed MUL 23? (Shadow load) 16x16->32 address 2x16KByte D-RAM fixed ALU data (Shadow load) 32+32->40 32 2x16KByte D-RAM fixed ALU (Shadow load) 32+32->40 2x128KB P-RAM fixed ALU/branch (Shadow load) 32+32->40 JTAG / clock pump fixed ALU/branch Expansion bus 4 channel DMA 32+32->40 Ext. memory integer ACU 17? address interface 32+32 2 Serial ports integer ACU data 2 Timers 32+32 32• Series continued; typical app.: modems, multimedia• 1999, 0.18  5ML, 352 pin, 250 MHz, 1.8V, 1.9W, $130 m,• Super scalar (8 Instr./cycle), 2000 MIPS, scales well till 700 MHz (6000 MIPS)•87 Optimum choice when all data fits in on-chip memory
  • Texas Instruments TMS320C6203© DHBK 2005 High end Fixed Point 2x64KByte D-RAM fixed MUL (Shadow load) 16x16->32 External memory 2x64KByte D-RAM fixed MUL 23? (Shadow load) 16x16->32 address 2x64KByte D-RAM fixed ALU data (Shadow load) 32+32->40 32 2x64KByte D-RAM fixed ALU (Shadow load) 32+32->40 256KByte P-RAM fixed ALU/branch 128KB P-cache/RAM 32+32->40 JTAG / clock pump fixed ALU/branch Expansion bus 4 channel DMA 32+32->40 Ext. memory integer ACU 17? address interface 32+32 2 Serial ports integer ACU data 2 Timers 32+32 32• Series continued; typical app.: base stations• 2000, 0.15  5ML, 18 mm2 package size, 300 MHz, 1.5V, 1.5W m,• Super scalar (8 Instr./cycle), 2400 MIPS• Optimum choice when all data fits in on-chip memory88
  • Texas Instruments TMS320C6211© DHBK 2005 High end Fixed Point 4KByte L1 Dcache fixed MUL (2 way set assoc.) 16x16->32 External memory 4KByte L1 Pcache fixed MUL 30 (2 way set assoc.) 16x16->32 address 4x16KByte L2 fixed ALU data cache (direct map) 32+32->40 32 fixed ALU 32+32->40 fixed ALU/branch 32+32->40 JTAG / clock pump fixed ALU/branch Host port 16 channel DMA 32+32->40 Ext. memory integer ACU 17 address interface 32+32 2 Serial ports integer ACU data 2 Timers 32+32 16• Series continued; typical app.: modems, multimedia• 1999, 0.18  5ML, 256 pin, 150 MHz, 1.8V, 1.5W, $25 m,• VLIW, 1.2 GIPS; cheap (25$ in ‘99, 5$ in ‘01)• Optimum for random access to large memory space•89 80% of performance of C6x with infinite on-chip memory
  • Texas Instruments TMS320C6416© DHBK 2005 High end Fixed Point 16 Kbyte L1P fixed MUL External memory direct mapped 16x16->32 16 Kbyte L1D fixed MUL 30 address 2way dual access 16x16->32 1 Mbyte RAM/L2 fixed ALU data 4way 32+32->40 64 Dual EMIF & HPI & fixed ALU PCI & Utopia 32+32->40 30 address JTAG / clock pump fixed ALU/branch 64 channel DMA 32+32->40 data 3 Serial ports fixed ALU/branch 16 3 Timers 32+32->40 HPI Viterbi decoder integer ACU ? accelerator 32+32 address Turbo decoder integer ACU data accelerator 32+32 32• Samples June 2001, 0.12  6 LM, 532 pin, 400 MHz-600 MHz, 1.2V, m, starts at 95$ in volume• Super scalar (8 Instr./cycle), 3200-4800 MIPS• Sub-word (8bit or 16bit) parallelism•90 Specialized instr.: Galois Field Mult, bit manipulation
  • Texas Instruments TMS320C6701© DHBK 2005 High end Floating Point Fixed/Float MUL 16KByte D-SRAM External memory 32x32/64x64 Fixed/Float MUL 23 16KByte D-SRAM address 32x32/64x64 Fixed/Float ALU data 16KByte D-SRAM 32+32/64+64 32 Fixed/Float ALU 16KByte D-SRAM 32+32/64+64 64KByte Fixed ALU/Branch P-SRAM/cache Float 1/x & x JTAG / clock pump Fixed ALU/Branch Host interface 4 channel DMA Float 1/x & x Ext. memory integer ACU 17 address interface 32+32 Serial interface integer ACU data 2 Timers 32+32 16• Series continued; typical app.: video compression• Introduced: 1998, 0.18  5ML, 352 pin, 167 MHz, 1.8V m,• Super scalar (8 Instr./cycle); VLIW; 1 GFLOP•91 Foreseen for ‘00: 50$ (cf. C6211) & 3 GFLOP (cf. C6202)
  • Texas Instruments TMS320C6711© DHBK 2005 High end Floating Point 4KByte L1 Dcache Fixed/Float MUL (2 way set assoc.) 32x32/64x64 External memory 4KByte L1 Pcache Fixed/Float MUL 23 (2 way set assoc.) 32x32/64x64 address 4x16KByte L2 Fixed/Float ALU data cache (direct map) 32+32/64+64 32 Fixed/Float ALU 32+32/64+64 Fixed ALU/Branch Float 1/x & x JTAG / clock pump Fixed ALU/Branch Host interface 4 channel DMA Float 1/x & x Ext. memory integer ACU 17 address interface 32+32 Serial interface integer ACU data 2 Timers 32+32 16• Series continued; typical app.: video compression• 2000, 0.18  5ML, 256 pin, 100 MHz, 1.8V, 2W, $20 m,• VLIW, 600 MFlops• Optimum for random access to large memory space•92 80% of performance of C6x with infinite on-chip memory
  • © DHBK 2005 Texas Instruments TMS320C541 (1995)93
  • © DHBK 2005 Texas Instruments TMS320C545 (1995)94
  • © DHBK 2005 Texas Instruments TMS320C80 (1994)95
  • © DHBK 2005 Chư ng 7: Cá c bộvi xửlý trên thự tế ơ c• General purpose microprocessors Intel 80x86 Xu hư ng phát triể ớ n• Microcontrollers Vi đ u khiể củ Motorola iề n a Họvi đ u khiể 8051 iề n Họvi đ u khiể AVR iề n PSOC Xu hư ng phát triể ớ n• Digital signal processors Texas Instruments Motorola Philips Xu hư ng phát triể ớ n96
  • Motorola MC56xxx© DHBK 2005 Audio Fixed Point 16 or 24 bit 24 XRAM integer CPU data YRAM ACU 18 address PRAM ACU Loop controller Selection of peripherals: ADC, DAC, comm., timers, PIO, ...• 24 bit for audio: 16 bit data + overflow97
  • © DHBK 2005 Motorola MC5600298
  • © DHBK 2005 Motorola MC5616699
  • © DHBK 2005 Chư ng 7: Cá c bộvi xửlý trên thự tế ơ c• General purpose microprocessors Intel 80x86 Xu hư ng phát triể ớ n• Microcontrollers Vi đ u khiể củ Motorola iề n a Họvi đ u khiể 8051 iề n Họvi đ u khiể AVR iề n PSOC Xu hư ng phát triể ớ n• Digital signal processors Texas Instruments Motorola Philips Xu hư ng phát triể ớ n100
  • Philips VSP-1© DHBK 2005 Fixed Point Video 12 512x12 bit 12 bit Memory element integer ALU 512x12 bit 12 bit Memory element integer ALU 12 bit 10x18 cross-bar integer ALU 12 10• 12 bit for video: 8 bit data + overflow• Clock Frequency: 27 MHz• 1 instruction per sample period for HDTV, 2 instructions per sample period for TV101
  • Philips VSP-1© DHBK 2005 Fixed Point Video Inputs ALU ALU ALU ME ME Outputs102
  • Philips VSP-1© DHBK 2005 Output FIFOs Fixed Point Video • 206K Transistors • 1.1W dissipation • 27 MHz clock • 176 pin • Introduced in 1991 Memory ALU Element103
  • Philips VSP-2© DHBK 2005 Fixed Point Video 12 512x12 bit 12 bit Memory element1 integer ALU1 512x12 bit 12 bit Memory element2 integer ALU2 12 512x12 bit 12 bit Memory element4 integer ALU 12 22x50 cross-bar 22• 12 bit for video: 8 bit data + overflow• Clock Frequency: 54 MHz• 2 instructions per sample period for HDTV, 4 instructions per sample period for TV104
  • Philips VSP-2© DHBK 2005 Fixed Point Video• 1.15 M Transistors• 5W dissipation• 54 MHz clock frequency• 208 pin•105 Introduced in 1994
  • © DHBK 2005 Sony Graphics Engine• Playstation 3 Status: prototype in 2001 287.5 MTOR 256 Mbit on-chip embedded DRAM 2000-bit wide internal bus 462 mm2 180 nm CMOS106
  • © DHBK 2005 Chư ng 7: Cá c bộvi xửlý trên thự tế ơ c• General purpose microprocessors Intel 80x86 Xu hư ng phát triể ớ n• Microcontrollers Vi đ u khiể củ Motorola iề n a Họvi đ u khiể 8051 iề n Họvi đ u khiể AVR iề n PSOC Xu hư ng phát triể ớ n• Digital signal processors Texas Instruments Motorola Philips Xu hư ng phát triể ớ n107
  • © DHBK 2005 Trends for DSP processors• No new generations that replace old generations, but multiple co-existing architecture lines• Word length application dependent Automotive: 16-bit fixed point (e.g. C2x) Speech: 32-bit floating point (e.g. C30) Audio: 24-bit fixed point (e.g. MC56K) Telecommunications: 16-32 bit fixed point (e.g. C5x, C6x) Video: 12-32 bit fixed point (e.g. C8x)• Single architecture line is whole family different memory & on-chip peripherals for embedded applications (cf. microcontrollers)108
  • © DHBK 2005 Trends for DSP processors• Deterministic behavior no caches, no virtual memory, but on-chip RAM banks no out-of-order execution delayed branch prediction• Increasing address space: 12 -> 32• Multiple functions on single chip: CPU, FPU, multiple RAM banks, ACUs, loop controller, ADC, DAC, PWM, serial interfaces, …• Often provisions for parallel processing109