Chapter 4 Topics The Design Process A 1-bus Microarchitecture for SRC

Slides:



Advertisements
Benzer bir sunumlar
BİLGİSAYAR, DONANIM VE YAZILIM KAVRAMLARI
Advertisements

Zamana Bağımlı Olmayan Doğrusal (LTI) Sistemlerin Frekans Tepkileri
CPU Tasarım – 2 Single – Cycle CPU Veriyolu Tasarımı
CPU Tasarım – 3 Single – Cycle CPU Controller Tasarımı
Bilgisayara Giriş Doç. Dr. Mehmet S. İlkay.
Üniversitemiz Öğrenci Bilgi Sistemine Kullanıcı Adı (Öğrenci Numarası ) ve tarafınızdan belirlenen Şifre ile giriş yapılır; You can have access to Student.
Atama ve eşleme (eşleştirme) problemleri (Matching and Assignment problems)
Logical Design Farid Rajabli.
Mikroişlemciler ve Mikrobilgisayarlar
Chapter 5 Overview The principles of pipelining
Ece Olcay Güneş & S. Berna Örs
İŞ SIRALAMA VE ÇİZELGELEME DERS 5
S 2/e C D A Computer Systems Design and Architecture Second Edition© 2004 Prentice Hall Chapter 6 Overview Number Systems and Radix Conversion Fixed point.
FONKSİYONLAR İbrahim Onur Sığırcı.
Bir Problemin Programa Dönüştürülme Süreci
Chapter 2: Machines, Machine Languages, and Digital Logic
Hareket halindeki insanlara ulaşın.Mobil Arama Ağı Reklamları Reach customers with Mobile Search Network.
Bağımlı talep için envanter sistemleri (MRP sistemi)
DEVRE TEOREMLERİ.
Bilgisayarlar kodu nasıl işler?
Examination of Reflexes. Reflexes Spinal cord reflexes represent the most basic of motor responses. These reflexes are carried out entirely within the.
COMPANY Veritabanı Örneği (Gereksinimler)
Programlama Fonksyionları
COSTUMES KILIKLAR (KOSTÜMLER)
ISE Senior Project Fall 2015.
Veri Yapıları ve Algoritmalar
BM-305 Mikrodenetleyiciler Güz 2015 (6. Sunu) (Yrd. Doç. Dr. Deniz Dal)
Yapısal Programlama Yüksek Düzeyli Dillerin Gelişim Süreci – , Fortran (by IBM), for creating scientific and engineering applications, first commercial.
Database for APED Büşra Bilgili | Emirhan Aydoğan | Meryem Şentürk | M. Arda Aydın COMPE 341.
S ÜLEYMAN Ş AH ÜN İ VERS İ TES İ DERS KAYIT İŞ LEMLER İ / COURSE REGISTRATION PROCESS.
21/02/2016 A Place In My Heart Nana Mouskouri « Istanbul « (A Different Adaptation)
Kayhan DURSUN Mantıksal Devre Tasarımı Dersi 6.Bölüm Cevapları
MUSIC FOR COMENIUS BROTHER HOOD NEVER ENDS BROTHERHOOD NEVER ENDS…. *We are not going to give up yet *It's time for us to make our move *We fed up with.
Improvement to Rankine cycle
Practice your writing skills
CHILD PORNOGRAPHY IŞIK ÜNİVERSİTESİ
Chapter 4 — The Processor — 1 Lecture 7 Pipelining.
INTRODUCTION TO JAVASCRIPT
8.8 A Simple Computer Architecture
INTRODUCTION TO JAVASCRIPT
BM-305 Mikrodenetleyiciler Güz 2016 (7. Sunu)
BİLİMSEL ÇALIŞMA BASAMAKLARI SCIENTIFIC WORKING STEPS MHD BASHAR ALREFAEI Y
LEFM and EPFM LEFM In LEFM, the crack tip stress and displacement field can be uniquely characterized by K, the stress intensity factor. It is neither.
CHAPTER OUTLINE 7 The Production Process: The Behavior of Profit-Maximizing Firms The Behavior of Profit-MaximizingFirms Profits and Economic Costs Short-Run.
Ac POWER ANALYSIS Part III..
Bilgisayarlar kodu nasıl işler?
Bir Problemin Programa Dönüştürülme Süreci
The Need for Program Design
INTRODUCTION TO JAVASCRIPT
taşınabilir Akilli Tahta Kullanım kılavuzu
Döngüler ve Shift Register
NİŞANTAŞI ÜNİVERSİTESİ
FONKSİYONLAR İbrahim Onur Sığırcı.
Recursion (Özyineleme)
NİŞANTAŞI ÜNİVERSİTESİ
The Need for Program Design
“Differentiation for making a positive Difference!!!!”
BİLL GATES Şule Eslem ÖZTÜRK NUN OKULLARI Prep-A.
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
(Dr. Öğr. Üyesi Deniz Dal)
Yapısal Programlama Yüksek Düzeyli Dillerin Gelişim Süreci
Chapter 5 – Balancing of accounts
Bilgisayarlar kodu nasıl işler?
People with an entrepreneurial mindset are always brave.
NİŞANTAŞI ÜNİVERSİTESİ
pnpn Yapılı Elektronik Elemanlar ve Diğerleri
Araştırma Deneyimini Geliştirme: ProQuest Ara Yuz Geliştirmeleri
Sunum transkripti:

Chapter 4 Topics The Design Process A 1-bus Microarchitecture for SRC Data Path Implementation Logic Design for the 1-bus SRC The Control Unit The 2- and 3-bus Processor Designs The Machine Reset Process Machine Exceptions

Bölüm 4 Konular Tasarım İşlemi SRC için 1-bus mikromimari Veri Yolu İmplementasyonu SRC İÇİN 1-bus Logic Tasarım Kontrol Birimi(Control Unit) 2 ve 3-bus İşlemci Tasarımı Makine Reset İşlemi Makine Exception ları

Abstract and Concrete Register Transfer Descriptions The abstract RTN for SRC in Chapter 2 defines “what,” not “how” A concrete RTN uses a specific set of real registers and buses to accomplish the effect of an abstract RTN statement Several concrete RTNs could implement the same ISA

Soyut ve Somut Register Transfer Tanımlamaları Bölüm 2 de ki, SRC için soyut RTN “ne” sorusunu tanımlar “nasıl” ‘ı değil Somut RTN, soyut RTN ifadelerinin etkilerinin üstesinden gelmek için gerçek register ve veri yollarının kümelerini kullanır. Pek çok somut RTN aynı ISA yı implement eder.

A Note on the Design Process This chapter presents several SRC designs This chapter proposes several block diagram architectures to support the abstract RTN, then it will: Write concrete RTN steps consistent with the architecture Keep track of demands made by concrete RTN on the hardware Design data path hardware and identify needed control signals Design a control unit to generate control signals

Tasarım İşlemi Hakkında Bir Not Bu bölüm de pek çok SRC tasarımı sunulacak Bu bölümde, soyut RTN leri destekleyecek şekilde pek çok blok diyagramları sunulacak: Mimari ile tutarlı olarak, somut RTN basamakları yazılacak Keep track of demands made by concrete RTN on the hardware Veri yolu donanımı tasarlanacak ve ihtiyaç duyulan kontrol sinyalleri tanımlanacak Kontrol sinyalleri üretmek üzere kontrol birimi tasarlanacak

Fig. 4.1 Block Diagram of 1-bus SRC

Fig. 4.2 High-Level View of the 1-Bus SRC Design EA 12 ADD SUB AND OR SHR SHRA SHL SHC NOT NEG C=B INC4

Constraints Imposed by the Microarchitecture One bus connecting most registers allows many different RTs but only one at a time Memory address must be copied into MA by CPU Memory data written from or read into MD First ALU operand always in A Result goes to C Second ALU operand always comes from bus Information only goes into IR and MA from bus A decoder (not shown) interprets contents of IR MA supplies address to memory, not to CPU bus

Mikromimari Tarafından Yüklenen Zorluklar Pek çok register ın bir yola bağlanması, pek çok RT lere izin verir but only one at a time Bellek adresleri CPU tarafından MA ya kopyalanmalıdır Bellek verisi MD den yazılır veya okunur İlk ALU operand herzaman A dadır. Sonuç C ye gelir İkinci ALU operand ı herzaman bus dan gelir Bilgi sadece IR a ve MA ya bus dan gider Dekoder IR ın içeriğini yorumlar MA belleğe adres sağlar, CPU bus ına değil

Abstract and Concrete RTN for SRC add Instruction Abstract RTN: (IR  M[PC]: PC PC + 4; instruction_execution); instruction_execution := ( • • • add (:= op= 12)  R[ra] R[rb] + R[rc]: Step RTN T0. MA PC: C PC + 4; T1. MD M[MA]: PC  C; T2. IR MD; T3. A R[rb]; T4. C A + R[rc]; T5. R[ra] C; Tbl 4.1 Concrete RTN for add: IF IEx. Parts of 2 RTs (IR  M[PC]: PC PC + 4;) done in T0 Single add RT takes 3 concrete RTs (T3, T4, T5)

SRC add komutu için Soyut ve Somut RTN Soyut RTN: (IR  M[PC]: PC PC + 4; instruction_execution); instruction_execution := ( • • • add (:= op= 12)  R[ra] R[rb] + R[rc]: Basam RTN T0. MA PC: C PC + 4; T1. MD M[MA]: PC  C; T2. IR MD; T3. A R[rb]; T4. C A + R[rc]; T5. R[ra] C; Tbl 4.1 add için somut RTN: IF IEx. Parts of 2 RTs (IR  M[PC]: PC PC + 4;) done in T0 Tek add RT si, 3 somut RT de gerçekleşir (T3, T4, T5)

Concrete RTN Gives Information about Sub-units The ALU must be able to add two 32-bit values ALU must also be able to increment B input by 4 Memory read must use address from MA and return data to MD Two RTs separated by : in the concrete RTN as in T0 and T1, are operations at the same clock Steps T0, T1, and T2 constitute instruction fetch and will be the same for all instructions With this implementation, fetch and execute of the add instruction takes 6 clock cycles

Somut RTN alt-birim ler hakkında bilgi verir ALU iki tane 32-bitlik değeri eklemelidir. ALU B yi 4 arttırmalıdır. Bellek okuma, MA dan adresleri kullanır. Ve veriyi MD ye döndürür. İki RT somut RTN de : işareti ile ayrılır. T0 ve T1 de olduğu gibi, aynı clock da yapılacak işlemler T0,T1 ve T2 deki işlemler fetch işlemini oluşturur Ve bütün komutlar için aynı olacaktır Bu implementasyonla, add komutunun fetch ve execute yapılması 6 clock aşamasında olmuştur.

Concrete RTN for Arithmetic Instructions: addi Abstract RTN: addi (:= op= 13)  R[ra]  R[rb] + c216..0 {2's comp. sign extend} : Tbl 4.2 Concrete RTN for addi: Step RTN T0. MA PC: C PC + 4; T1. MD M[MA]; PC  C; T2. IR MD; T3. A R[rb]; T4. C A + c216..0 {sign ext.}; T5. R[ra] C; Differs from add only in step T4 Establishes requirement for sign extend hardware

Aritmetik Komutlar için Somut RTN: addi Soyutt RTN: addi (:= op= 13)  R[ra]  R[rb] + c216..0 {2's comp. sign extend} : Tbl 4.2 addi için Somut RTN: Step RTN T0. MA PC: C PC + 4; T1. MD M[MA]; PC  C; T2. IR MD; T3. A R[rb]; T4. C A + c216..0 {sign ext.}; T5. R[ra] C; Sadece T4 de farklılık vardır Sign extend donanım için gereklilikler belirlenir

Concrete RTN lets us add detail to the data path Fig. 4.3 More Complete view of Registers and Buses in 1-bus SRC Design—Including Some Control Signals Concrete RTN lets us add detail to the data path Instruction register logic & new paths Condition bit flip-flop Shift count register Keep this slide in mind as we discuss concrete RTN of instructions.

Somut RTN veri yoluna detay eklememize izin verir Fig. 4.3 1-bus SRC tasarımında Register ve Bus ların daha Kompleks Görünümü—Bazı kontrol sinyalleri içerir Somut RTN veri yoluna detay eklememize izin verir Instruction register logic & new paths Condition bit flip-flop Shift count register Somut RTN i tartışırken bu slayt ı hatırlaycagız

Abstract and Concrete RTN for Load and Store ld (:= op= 1)  R[ra]  M[disp] : st (:= op= 3)  M[disp]  R[ra] : where disp31..0 := ((rb=0)  c216..0 {sign ext.} : (rb0)  R[rb] + c216..0 {sign extend, 2's comp.} ) : Tbl 4.3 Step RTN for ld RTN for st T0-T2 Instruction fetch T3. A (rb=0  0: rb0  R[rb]); T4. C A + (16@IR16#IR15..0); T5. MA C; T6. MD M[MA]; MD R[ra]; T7. R[ra] MD; M[MA] MD;

Load ve Store için Soyut ve Somut RTN ld (:= op= 1)  R[ra]  M[disp] : st (:= op= 3)  M[disp]  R[ra] : where disp31..0 := ((rb=0)  c216..0 {sign ext.} : (rb0)  R[rb] + c216..0 {sign extend, 2's comp.} ) : Tbl 4.3 Basamak ld için RTN st için RTN T0-T2 Instruction fetch T3. A (rb=0  0: rb0  R[rb]); T4. C A + (16@IR16#IR15..0); T5. MA C; T6. MD M[MA]; MD R[ra]; T7. R[ra] MD; M[MA] MD;

Notes for Load and Store RTN Steps T0 through T2 are the same as for add and addi, and for all instructions In addition, steps T3 through T5 are the same for ld and st, because they calculate disp A way is needed to use 0 for R[rb] when rb=0 15 bit sign extension is needed for IR16..0 Memory read into MD occurs at T6 of ld Write of MD into memory occurs at T7 of st

Load ve store RTN için Notlar T0 dan T2 ye bütün komutlar için aynıdır add, addi de olduğu gibi T3 den T5 e kadar ld ve st için basamaklar aynıdır, çünkü disp hesaplanır A way is needed to use 0 for R[rb] when rb=0 IR16..0 için 15 bit sign extension a ihtiyaç vardır MD ye bellek okuması ld de T6 da olur MD yi belleğe yazma st de T7 de olur

Concrete RTN for Conditional Branch br (:= op= 8)  (cond  PC  R[rb]): cond := ( c32..0=0  0: never c32..0=1  1: always c32..0=2  R[rc]=0: if register is zero c32..0=3  R[rc]0: if register is nonzero c32..0=4  R[rc]31=0: if positive or zero c32..0=5  R[rc]31=1 ): if negative Tbl 4.4 Step Concrete RTN T0-T2 Instruction fetch T3. CON  cond(R[rc]); T4. CON  PC  R[rb];

Notes on Conditional Branch RTN c32..0are just the low order 3 bits of IR cond() is evaluated by a combinational logic circuit having inputs from R[rc] and c32..0 The one bit register CON is not accessible to the programmer and only holds the output of the combinational logic for the condition If the branch succeeds, the program counter is replaced by the contents of a general reg.

Koşullu Dallanma RTN hakkında Notlar c32..0are just the low order 3 bits of IR cond(), R[rc] ve c32..0 den input alan kombinasyonel logic devre tarafından değerlendirilir. Bir bit register CON’a, programcı tarafından ulaşılamaz ve sadece koşullar için kombinasyonel logic devrenin output unu tutar. Eğer dallanma başarılırsa, program counter’a genel register ‘in içeriği konulur.

Abstract and Concrete RTN for SRC Shift Right shr (:= op = 26)  R[ra]31..0  (n @ 0) # R[rb]31..n : n := ( (c34..0=0)  R[rc]4..0 : shift count in reg. (c34..0≠0)  c34..0 ): or const. field Step Concrete RTN T0-T2 Instruction fetch T3. n  IR4..0; T4. (n=0)  (n  R[rc]4..0  C  R[rb]; T6. Shr (:= (n≠0)  (C31..0  0#C31..1n  n-1; Shr) ); T7. R[ra]  C; step T6 is repeated n times Tbl 4.5

Notes on SRC Shift RTN In the abstract RTN, n is defined with := In the concrete RTN, it is a physical register n not only holds the shift count but it is used as a counter in step T6 Step T6 is repeated n times as shown by the recursion in the RTN

SRC de Shift(Kaydırma) RTN Hakkında Notlar Soyut RTN de, n := ile tanımlanır. Somut RTN de, bu fiziksel bir register dır. n sadece kaydırma sayısını tutmakla kalmaz, T6 basamağında sayaç olarak da kullanılır. T6 basamağı n kadar tekrarlanır, RTN de recursion da gösterildiği gibi

Data Path/Control Unit Separation Interface between data path and control consists of gate and strobe signals A gate selects one of several values to apply to a common point say a bus A strobe changes the values of the flip-flops in a register to match new inputs The type of flip-flop used in regs. has much influence on control and some on data path Latch: simpler hardware, but more complex timing Edge triggering: simpler timing, but about 2 hardware

Veri Yolu/Kontrol Birimi Ayrımı Veri yolu ve kontrol arasında arayüz gate ve strobe sinyallerini içerir Bir kapı, genel bir noktayı uygulamak için pek çok değerden birisini seçer say a bus Bir strobe, yeni inputları eşleştirmek için register daki flip-flop değerlerini değiştirir Flip-flop un tipi, kontrol ve veri yolu üzerinde daha fazla tesiri olan register lardan kullanılır. Latch: daha basit donanım, fakat daha kompleks zamanlama Edge triggering: daha basit zamanlama, fakat 2 kat daha donanım

Fig. 4.4 The SRC Register File and Its Control Signals Rout gates selected reg. onto bus Rin strobed selected reg. from bus BAout differs from Rout by gating 0 when R[0] is selected BA = Base Address

Fig. 4.5 Extracting c1, c2, and op from the Instruction Register I21 is the sign bit of C1 that must be extended I16 is the sign bit of C2 that must be extended Sign bits are fanned out from one to several bits and gated to bus

Fig. 4.5 Instruction Register dan c1, c2 ve op un çıkarılması C1 in işaret biti olan I21 genişletilmelidir C2 nin işaret biti I16 olan genişletilmelidir İşaret bitleri, bir bitden pek çok bitlere yayılır ve bus a kapılanır

Fig. 4.6 CPU to Memory Interface: MA and MD Registers MD is loaded from memory bus or from CPU bus MD can drive CPU bus or memory bus

Fig. 4.6 CPU dan Belleğe Arayüz: MA ve MD Register ları MD, bellek bus ından veya CPU bus ından beslenir MD, CPU bus ını veya bellek bus ını kullanır

Fig. 4.7 The ALU and Its Associated Registers

From Concrete RTN to Control Signals: The Control Sequence Tbl 4.6—The Instruction Fetch Step Concrete RTN Control Sequence T0. MA  PC: C  PC+4; PCout, MAin, Inc4, Cin T1. MD  M[MA]: PC  C; Read, Cout, PCin, Wait T2. IR  MD; MDout, IRin T3. Instruction_execution The register transfers are the concrete RTN The control signals that cause the register transfers make up the control sequence Wait prevents the control from advancing to step T3 until the memory asserts Done

Somut RTN den Kontrol Sinyaline: Kontrol Dizisi Tbl 4.6—The Instruction Fetch Step Concrete RTN Control Sequence T0. MA  PC: C  PC+4; PCout, MAin, Inc4, Cin T1. MD  M[MA]: PC  C; Read, Cout, PCin, Wait T2. IR  MD; MDout, IRin T3. Instruction_execution Register transferleri somut RTN dir. Register transfer ine sebep olan kontrol sinyalleri kontrol dizilerini oluşturur Wait(Bekleme) bellek Done(Yapıldı) sinyalini gönderene kadar T3 basamağına geçilmesini engeller.

Control Steps, Control Signals, and Timing Within a given time step, the order in which control signals are written is irrelevant In step T0, Cin, Inc4, MAin, PCout == PCout, MAin, Inc4, Cin The only timing distinction within a step is between gates and strobes The memory read should be started as early as possible to reduce the wait MA must have the right value before being used for the read Depending on memory timing, Read could be in T0

Kontrol Basamakları, Kontrol Sinyalleri ve Zamanlama Verilen zaman basamağında kontrol sinyallerinin yazıldığı sıra alakasızdır In step T0, Cin, Inc4, MAin, PCout == PCout, MAin, Inc4, Cin Bir basamakta ki zamanlama ayrımı sadece, gate ve strobe arasındadır Bellek okuması, beklemeyi azaltmak için, mümkün olduğunca erken başlamalıdır MA, read(okuma) için, kullanılmadan önce mutlaka doğru değere sahip olmalıdır Bellek zamanlamasına bağlı olarak, Read(okuma) T0 da olmalıdır.

Control Sequence for the SRC add Instruction SRC add komutu için Kontrol Dizisi add (:= op= 12)  R[ra] R[rb] + R[rc]: Tbl 4.7 The Add Instruction Step Concrete RTN Control Sequence T0. MA  PC: C  PC+4; PCout, MAin, Inc4, Cin, Read T1. MD  M[MA]: PC  C; Cout, PCin, Wait T2. IR  MD; MDout, IRin T3. A  R[rb]; Grb, Rout, Ain T4. C  A + R[rc]; Grc, Rout, ADD, Cin T5. R[ra]  C; Cout, Gra, Rin, End Note the use of Gra, Grb, & Grc to gate the correct 5 bit register select code to the regs. End signals the control to start over at step T0

Control Sequence for the SRC addi Instruction SRC addi komutu için Kontrol Dizisi addi (:= op= 13)  R[ra]  R[rb] + c216..0 {2's comp., sign ext.} : Tbl 4.8 The addi Instruction Step Concrete RTN Control Sequence T0. MA  PC: C  PC + 4; PCout, MAin, Inc4, Cin, Read T1. MD  M[MA]; PC  C; Cout, PCin, Wait T2. IR  MD; MDout, IRin T3. A  R[rb]; Grb, Rout, Ain T4. C  A + c216..0 {sign ext.}; c2out, ADD, Cin T5. R[ra]  C; Cout, Gra, Rin, End The c2out signal sign extends IR16..0 and gates it to the bus c2out sinyal işareti IR16..0 ı genişletir ve bus a kapılar.

Control Sequence for the SRC st Instruction SRC st komutu için Kontrol Dizisi st (:= op= 3)  M[disp]  R[ra] : disp31..0 := ((rb=0)  c216..0 {sign ext.} : (rb0)  R[rb] + c216..0 {sign extend, 2's comp.} ) : The st Instruction Step Concrete RTN Control Sequence T0-T2 Instruction fetch Instruction fetch T3. A  (rb=0)  0: rb0  R[rb]; Grb, BAout, Ain T4. C  A + c216..0 {sign ext.}; c2out, ADD, Cin T5. MA  C; Cout, MAin T6. MD  R[ra]; Gra, Rout, MDin, Write T7. M[MA]  MD; Wait, End } address arithmetic T3 deki BAout , addi komutunda ki T3 de ki Rout ile karşılaştırıldı

Fig. 4.9 The Shift Counter The concrete RTN for shr relies upon a 5 bit register to hold the shift count It must load, decrement, and have an = 0 test

Fig. 4.9 Kaydırma Sayacı shr için somut RTN, kaydırma sayısını tutmak için, 5 bitlik bir register kullanır It must load, decrement, and have an = 0 test

Tbl 4.10 Control Sequence for the SRC shr Instruction—Looping Step Concrete RTN Control Sequence T0-T2 Instruction fetch Instruction fetch T3. n  IR4..0; c1out, Ld T4. (n=0)  (n  R[rc]4..0); n=0  (Grc, Rout, Ld) T5. C  R[rb]; Grb, Rout, C=B, Cin T6. Shr (:= (n≠0)  n0  (Cout, SHR, Cin, (C31..0  0#C31..1: Decr, Goto6) n  n-1; Shr) ); T7. R[ra]  C; Cout, Gra, Rin, End Conditional control signals and repeating a control step are new concepts

Tbl 4.10 SRC shr komutu için Kontrol Dizisi Instruction—Looping Step Concrete RTN Control Sequence T0-T2 Instruction fetch Instruction fetch T3. n  IR4..0; c1out, Ld T4. (n=0)  (n  R[rc]4..0); n=0  (Grc, Rout, Ld) T5. C  R[rb]; Grb, Rout, C=B, Cin T6. Shr (:= (n≠0)  n0  (Cout, SHR, Cin, (C31..0  0#C31..1: Decr, Goto6) n  n-1; Shr) ); T7. R[ra]  C; Cout, Gra, Rin, End Koşullu kontrol sinyalleri ve bir kontrol basamağının tekrarı yeni kavramlardır.

Tbl 4.11 Control Sequence for SRC Branch Instruction, br br (:= op= 8)  (cond  PC  R[rb]): Step Concrete RTN Control Sequence T0-T2 Instruction fetch Instruction fetch T3. CON  cond(R[rc]); Grc, Rout, CONin T4. CON  PC  R[rb]; Grb, Rout, CON  PCin, End Condition logic is always connected to CON, so R[rc] only needs to be put on bus in T3 Only PCin is conditional in T4 since gating R[rb] to bus makes no difference if it is not used

Tbl 4.11 SRC dallanma komutu br için Kontrol Dizisi br (:= op= 8)  (cond  PC  R[rb]): Step Concrete RTN Control Sequence T0-T2 Instruction fetch Instruction fetch T3. CON  cond(R[rc]); Grc, Rout, CONin T4. CON  PC  R[rb]; Grb, Rout, CON  PCin, End Koşul mantığı , herzaman CON a bağlanmalıdır, böylece R[rc] nin sadece T3 de bus a koyulmasına ihtiyaç duyulur. Sadece PCin T4 de koşulsaldır çünkü, eğer R[rb] kullanılmıyorsa , R[rb] ın bus a kapılanması farklılık arz etmez

Summary of the Design Process Informal description  formal RTN description  block diagram arch.  concrete RTN steps  hardware design of blocks control sequences  control unit and timing At each level, more decisions must be made These decisions refine the design Also place requirements on hardware still to be designed The nice one way process above has circularity Decisions at later stages cause changes in earlier ones Happens less in a text than in reality because Can be fixed on re-reading Confusing to first time student

Tasarım İşleminin Özeti Informal açıklama  formal RTN açıklaması Blok diyagram mimarisi  somut RTN basamakları  blokların donanımsal tasarımı kontrol dizileri kontrol birimi ve zamanlama Her level de, çok fazla karar verilmek zorundadır Bu karalar tasarımı geliştirir Ayrıca donanımda ki yer gereksinimleri , dizayn edilmelidir The nice one way process above has circularity İleri aşamalarda ki kararlar, daha erken aşamalar da değişikliklere yol açar Happens less in a text than in reality because Can be fixed on re-reading Confusing to first time student

Fig. 4.11 Clocking the Data Path: Register Transfer Timing tR2valid is the period from begin of gate signal till inputs to R2 are valid tcomb is delay through combinational logic, such as ALU or cond logic

Fig. 4.11 Clocking the Data Path: Register Transfer Zamanlaması tR2valid kapı sinyalinin başlamasından, R2 deki inputların doğrulanmasına kadar geçen periyottur tcomb combinational logic boyunca süren gecikmedir, mesela, ALU veya cond logic

Signal Timing on the Data Path Several delays occur in getting data from R1 to R2 Gate delay through the 3-state bus driver—tg Worst case propagation delay on bus—tbp Delay through any logic, such as ALU—tcomb Set up time for data to affect state of R2—tsu Data can be strobed into R2 after this time tR2valid = tg + tbp + tcomb + tsu Diagram shows strobe signal in the form for a latch. It must be high for a minimum time—tw There is a hold time, th, for data after strobe ends

Veri Yolunda Sinyal Zamanlama Pek çok gecikme R1 den R2 ye veri geçişinde gerçekleşir (Gate)Kapı gecikmesi 3-state bus da gerçekleşir—tg Bus da ki Worst case propagation gecikmesi —tbp Delay through any logic, such as ALU—tcomb Set up time for data to affect state of R2—tsu Data can be strobed into R2 after this time tR2valid = tg + tbp + tcomb + tsu Bir latch için, diyagram strobe sinyalini gösterir. Bu minimum zaman için, yüksek olmalıdır. —tw Veri için bir tutma zamanı vardır, th, strobe bittikten sonra

Effect of Signal Timing on Minimum Clock Cycle A total latch propagation delay is the sum Tl = tsu + tw + th All above times are specified for latch th may be very small or zero The minimum clock period is determined by finding longest path from ff output to ff input This is usually a path through the ALU Conditional signals add a little gate delay Using this path, the minimum clock period is tmin = tg + tbp + tcomb + tl

Minimum Clock Cycle üzerine Sinyal Zamanlamanın Etkisi Toplam latch yayılma gecikmesi, toplamlarıdır Tl = tsu + tw + th Yukarıdaki bütün zamanlar latch içindir th çok küçük veya sıfır olabilir Minimum clock periyotu, ff output unudan ff input una en uzun yolun bulunmasıyla kararlaştırılır. Bu genelde ALU ya doğru bir yoldur Koşulsal sinyaller çok az bir kapı gecikmesine sebep olur. Bu yolu kullanarak, minimum clock periyotu tmin = tg + tbp + tcomb + tl olur

Latches Versus Edge Triggered or Master Slave Flip-Flops During the high part of a strobe a latch changes its output If this output can affect its input, an error can occur This can influence even the kind of concrete RTs that can be written for a data path If the C register is implemented with latches, then C  C + MD; is not legal If the C register is implemented with master-slave or edge triggered flip-flops, it is OK

Latches Versus Edge Triggered or Master Slave Flip-Flops Bir strobe un yüksek(high) kısmı boyunca, bir latch output unu değiştirir. Eğer bu output onun input unu etkilerse, hata olabilir Bu, veri yolu için yazılmış olan somut RT leri dahi etkileyebilir Eğer C regsiter i latch lerle implement edildiyse, C  C + MD; uygun değildir Eğer C regsiter i master-slave veya edge triggered flip-flop lar ile implement edildiyse, uygundur.

The Control Unit a time state generator The control unit’s job is to generate the control signals in the proper sequence Things the control signals depend on The time step Ti The instruction op code (for steps other than T0, T1, T2) Some few data path signals like CON, n=0, etc. Some external signals: reset, interrupt, etc. (to be covered) The components of the control unit are: a time state generator instruction decoder combinational logic to generate control signals

Kontrol Birimi Kontrol Biriminin işi uygun dizide kontrol sinyali üretmektir. Kontrol sinyalinin bağımlı olduğu şeyler Zaman basamağı Ti Komutun op code u (for steps other than T0, T1, T2) Bazı veri yolu sinyalleri CON, n=0, v.b… gibi. Bazı harici sinyaller: reset, interrupt, etc. (to be covered) Kontrol biriminin bileşenleri: zaman durum üretici(time state generator), Komut dekoderi(instruction decoder) Kontrol sinyali üreten combinational logic

Fig. 4.12 Control Unit Detail with Inputs and Outputs

Have Completed One-Bus Design of SRC High level architecture block diagram Concrete RTN steps Hardware design of registers and data path logic Revision of concrete RTN steps where needed Control sequences Register clocking decisions Logic equations for control signals Time step generator design Clock run, stop, and synchronization logic

Have Completed One-Bus Design of SRC Yüksek seviyeli blok diyagram mimarisi Somut RTN basamakları Register ve veri yolu logic lerinin donanım tasarımı İhtiyaç duyulduğunda somut RTN basamaklarının revizyonu Kontrol Dizileri Register clocking decisions Kontrol sinyalleri için Logic denklemler Zaman basamak üretici tasarımı Clock run, stop, and synchronization logic

Other Architectural designs will require a different RTN More data paths allow more things to be done in one step Consider a two bus design By separating input and output of ALU on different buses, the C register is eliminated Steps can be saved by strobing ALU results directly into their destinations

Diğer mimari tasarımları farklı RTN e gereksinim duyarlar Daha fazla veri yolu, daha fazla işlemin tek bir basamakta gerçekleşmesine imkan sağlar İki bus tasarımını düşünün Farklı bus larda, ALU nun input ve outpu u ayrılarak, C register i elenir ALU sonuçları kendi istikametlerine strobe lanarak, basamaklar saklanır.

Fig. 4.16 The 2-bus Microarchitecture Bus A carries data going into registers Bus B carries data being gated out of registers ALU function C=B is used for all simple register transfers

Fig. 4.16 2-bus Mikromimarisi Bus A register lara giden veriyi taşır Bus B register lardan kapılanacak veriyi taşır ALU fonksiyonu C=B bütün basit register transferlerinde kullanılır

Tbl 4.13 Concrete RTN and Control Sequence for 2-bus SRC add Step Concrete RTN Control Sequence T0. MA  PC; PCout, C=B, MAin, Read T1. PC  PC + 4: MD  M[MA]; PCout, Inc4, PCin, Wait T2. IR  MD; MDout, C=B, IRin T3. A  R[rb]; Grb, Rout, C=B, Ain T4. R[ra]  A + R[rc]; Grc, Rout, ADD, Sra, Rin, End Note the appearance of Grc to gate the output of the register rc onto the B bus and Sra to select ra to receive data strobed from the A bus Two register select decoders will be needed Transparent latches will be required for MA at step T0

Tbl 4.13 2-bus SRC add için Somut RTN ve Kontrol Dizisi Step Concrete RTN Control Sequence T0. MA  PC; PCout, C=B, MAin, Read T1. PC  PC + 4: MD  M[MA]; PCout, Inc4, PCin, Wait T2. IR  MD; MDout, C=B, IRin T3. A  R[rb]; Grb, Rout, C=B, Ain T4. R[ra]  A + R[rc]; Grc, Rout, ADD, Sra, Rin, End Note the appearance of Grc to gate the output of the register rc onto the B bus and Sra to select ra to receive data strobed from the A bus İki register ihtiyaç duyulan decoder leri seçer Transparent latch lere MA için T0 basamağında ihtiyaç vardır

Performance and Design

Speedup Due To Going to 2 Buses Assume for now that IC and t don’t change in going from 1 bus to 2 buses Naively assume that CPI goes from 8 to 7 clocks. Class Problem: How will this speedup change if clock period of 2-bus machine is increased by 10%?

Speedup Due To Going to 2 Buses 1 bus den 2 bus a geçerken IC ve t nin değişmediğini düşünün CPI ın 8 den 7 clock a düştüğünü düşünün Class Problem: Eğer 2-bus lı makinede clock periyotu %10 oranında artarsa, speedup daki değişim nasıl olur?

3-bus Architecture Shortens Sequences Even More A 3-bus architecture allows both operand inputs and the output of the ALU to be connected to buses Both the C output register and the A input register are eliminated Careful connection of register inputs and outputs can allow multiple RTs in a step

3-bus Mimarisinde Diziler daha Azalır 3-bus mimarisi, ALU nun input ve output operand larının her ikisinin de bus lara bağlantısına izin verir C output register ve A input register ın her ikisi de devre dışı bırakılır Register input ve output ları dikkatli bağlanırsa birden fazla RT lerin bir basamak da işlenmesine izin veriri

Fig. 4.17 The 3-Bus SRC Design A-bus is ALU operand 1, B-bus is ALU operand 2, and C-bus is ALU output Note MA input connected to the B-bus

Fig. 4.17 3-bus SRC Tasarımı A-bus ALU operand 1 dir, B-bus ALU operand 2 dir, ve C-bus ALU output dur. Not. MA input, B-bus ına bağlıdır.

Tbl 4.15 SRC add Instruction for the 3-bus Microarchitecture Step Concrete RTN Control Sequence T0. MA  PC: PC  PC + 4: PCout, MAin, Inc4, PCin, MD  M[MA]; Read, Wait T1. IR  MD; MDout, C=B, IRin T2. R[ra]  R[rb] + R[rc]; GArc, RAout, GBrb, RBout, ADD, Sra, Rin, End Note the use of 3 register selection signals in step T2: GArc, GBrb, and Sra In step T0, PC moves to MA over bus B and goes through the ALU Inc4 operation to reach PC again by way of bus C PC must be edge triggered or master-slave Once more MA must be a transparent latch

Tbl 4.15 3-bus Miromimarisi için SRC add komutu Step Concrete RTN Control Sequence T0. MA  PC: PC  PC + 4: PCout, MAin, Inc4, PCin, MD  M[MA]; Read, Wait T1. IR  MD; MDout, C=B, IRin T2. R[ra]  R[rb] + R[rc]; GArc, RAout, GBrb, RBout, ADD, Sra, Rin, End Not: 3 register seçme sinyalinin T2 basamğında kullanımı: GArc, GBrb, ve Sra T0 basamağında, PC bus B üzerinden MA ya hareket eder ve ALU da Inc4 komutu ile işleme girdikten sonra C bus ı üzerinden tekrar PC ye gelir PC edge triggered veya master-slave olmalııdr Once more MA must be a transparent latch

Performance and Design How does going to three buses affect performance? Assume average CPI goes from 8 to 4, while  increases by 10%:

Performance and Design Üç bus performansı nasıl etkiler?  %10 oranında artarken, ortalama CPI ın 8 den 4 e çıktıgın düşünün

Processor Reset Function Reset sets program counter to a fixed value May be a hardwired value, or contents of a memory cell whose address is hardwired The control step counter is reset Pending exceptions are prevented, so initialization code is not interrupted It may set condition codes (if any) to known state It may clear some processor state registers A “soft” reset makes minimal changes: PC, T (T-step counter) A “hard” reset initializes more processor state

İşlemci Reset Fonksiyonu Reset program counter ı sabit bir değere ayarlar Donanım değeri olabilir veya Fiziksel bağlantılı adres içeren bir belleğin içeriği olabilir Kontrol basamak sayıcı resetlenir Bekleyen exception lar önlenir,böylece başlama kodu kesilmez It may set condition codes (if any) to known state Bazı işlemci durum register ları temizlenebilir “soft” reset minimum değişim oluşturur: PC, T (T-step counter) “hard” reset daha çok işlemci durumunu sıfırlar

SRC Reset Capability We specify both a hard and soft reset for SRC The Strt signal will do a hard reset It is effective only when machine is stopped It resets the PC to zero It resets all 32 general registers to zero The Soft Reset signal is effective when the machine is running It sets PC to zero It restarts instruction fetch It clears the Reset signal Actions are described in instruction_interpretation

SRC Reset Yeteneği SRC için soft ve hard reset tanımlarız Strt sinyali hard reset yapacak Sadece Makine durduğunda etkili olur PC yi 0 a resetler 32 general register ları 0 a resetler Soft Reset sinyali, makine çalışırken etkili olur PC yi 0 a ayarlar Komut fetch i yeniden başlatır Reset sinyalini temizler İşlemler instruction_interpretation da tanımlanır

Tbl 4.17 Concrete RTN Describing Reset During add Instruction Execution Step Concrete RTN T0 Reset (MA PC: C PC + 4): Reset (Reset 0: PC 0: T 0): T1 Reset (MD M[MA]: P C): Reset (Reset 0: PC 0: T 0): T2 Reset (IR MD): T3 Reset (A R[rb]): T4 Reset (C A + R[rc]): T5 Reset (R[ra ] C):

Control Sequences Including the Reset Function Step Control Sequence T0. Reset  (PCout, MAin, Inc4, Cin, Read): Reset  (ClrPC, ClrR, Goto0): T1 Reset  (Cout, PCin, Wait): • • • ClrPC clears the program counter to all zeros ClrR clears the one bit Reset flip-flop Because the same reset actions are in every step of every instruction, their control signals are independent of time step or op code

Control Sequences Including the Reset Function Step Control Sequence T0. Reset  (PCout, MAin, Inc4, Cin, Read): Reset  (ClrPC, ClrR, Goto0): T1 Reset  (Cout, PCin, Wait): • • • ClrPC program counter ı sıfırlara temizler ClrR bir bit Reset flip-flop ı temizler Çünkü her komutun her basamağında aynı reset işlemi vardır, bunların kontrol sinyalleri, zaman basamağı ve op code dan bağımsızdır

General Comments on Exceptions An exception is an event that causes a change in the program specified flow of control Because normal program execution is interrupted, they are often called interrupts We will use exception for the general term and use interrupt for an exception caused by an external event, such as an I/O device condition The usage is not standard. Other books use these words with other distinctions, or none

Exception lar üzerine Genel İfadeler Exception, programın akışında bir değişikliğe sebep olan durumlardır. Çünkü normal program işleyişi kesilir, bunlara genelde interrupt denir. Biz exception u genel bir ifade olarak kullanacağız ve interrupt ı da harici durumlardan kaynaklanan exception lar şeklinde ifade edeceğiz, mesela I/O araç durumu Kullanım standart değildir. Other books use these words with other distinctions, or none

Combined Hardware/Software Response to an Exception The system must control the type of exceptions it will process at any given time The state of the running program is saved when an allowed exception occurs Control is transferred to the correct software routine, or “handler” for this exception This exception, and others of less or equal importance are disallowed during the handler The state of the interrupted program is restored at the end of execution of the handler

Exception a Birleştirilmiş Donanım/Yazılım Tepkisi Sistem exception tip kontrolü yapmak zorundadır, verilen her hangi verilen bir zamanda işleyecektir. İzin verilen bir exception olduğunda, çalışan programın durumu saklanmalıdır. Kontrol doğru yazılım routine e transfer edilir, veya bu exception için “tutucu” kullanılır. Tutma işlemi süresince, bu exception ve daha çok veya daha az öneme sahip olan exception lara izin verilmez Kesilen programın durumu, tutucunun işlenmesinden sonra, yenilenir

Hardware Required to Support Exceptions To determine relative importance, a priority number is associated with every exception Hardware must save and change the PC, since without it no program execution is possible Hardware must disable the current exception lest is interrupt the handler before it can start Address of the handler is called the exception vector and is a hardware function of the exception type Exceptions must access a save area for PC and other hardware saved items Choices are special registers or a hardware stack

Exception ları Desteklemek için Gfereken Donanım Önemlilik sırasına göre her exception a öncelik numarası atanır. Donanım saklanmalıdır ve PC degişmelidir, çünkü bu olmadan hiçbir program işletielmez. Hardware must disable the current exception lest is interrupt the handler before it can start Tutucunun adresi ne exception vektör denir ve exception tipinin donanım fonksiyonudur. Exception lar PC ve diğer donanım araçları için saklanmış alana ulaşmak zorundadır Seçenekler, özel register lar veya bir donanım stack idir.

New Instructions Needed to Support Exceptions An instruction executed at the end of the handler must reverse the state changes done by hardware when the exception occurred There must be instructions to control what exceptions are allowed The simplest of these enable or disable all exceptions If processor state is stored in special registers on an exception, instructions are needed to save and restore these registers

Exception ları Dstekleyen Yeni Komutlara İhtiyaç Vardır Tutucunun sonunda işlenen komut, exception olduğunda donanım tarafından değiştirilen durumları eskiye döndürmek zorundadır Ne tip exception lara izin verildiğini kontrol eden komutlar mevcuttur Bunların en basiti bütün exception ları enable veye disable edebilir Eğer exception olduğunda,işlemci durumu özel register lara depolandıysa, bu register ları koruyan ve yenileyen komutlara ihtiyaç vardır.

Kinds of Exceptions System reset Exceptions associated with memory access Machine check exceptions Data access exceptions Instruction access exceptions Alignment exceptions Program exceptions Miscellaneous hardware exceptions Trace and debugging exceptions Non-maskable exceptions External exceptions—interrupts

Exceptions Çeşitleri System reset Bellek ulaşımı ile bağlantılı Exception lar Machine check exceptions Data access exceptions Instruction access exceptions Alignment exceptions Program exception ları Çeşitli donanım exceptions Trace and debugging exceptions Non-maskable exceptions Harici exceptions—interrupts

An Interrupt Facility for SRC The exception mechanism for SRC handles external interrupts There are no priorities, but only a simple enable and disable mechanism The PC and information about the source of the interrupt are stored in special registers Any other state saving is done by software The interrupt source supplies 8 bits that are used to generate the interrupt vector It also supplies a 16 bit code carrying information about the cause of the interrupt

SRC için Interrupt İmkanı SRC için Exception mekanizması, harici interrupt ları tutar Öncelik yoktur, fakat basit bir enable ve disable makanizması vardır İnterrupt ın kaynağı hakkında ki bilgi ve PC özel register lara kaydedilir. Any other state saving is done by software Interrupt kaynağı, interrupt vektörünü oluşturmakta kullanılan 8 bit i destekler Ayrıca interrupt a sebep olan bilgi nin de tutulması için 16 bit destekler

SRC Processor State Associated with Interrupts Processor interrupt mechanism ireq: interrupt request signal iack: interrupt acknowledge signal IE: one bit interrupt enable flag IPC31..0: storage for PC saved upon interrupt II15..0: info. on source of last interrupt Isrc_info15..0: information from interrupt source Isrc_vect7..0: type code from interrupt source Ivect31..0:= 20@0#Isrc_vect7..0#4@0: From Dev. To Dev.  Internal  to CPU  “  From Dev  Ivect31..0 000 . . . 0 Isrc_vect7..0 0000 31 12 11 4 3

SRC Processor State Associated with Interrupts İşlemci Interrupt Mekanizması ireq: interrupt istek sinyali iack: interrupt doğruluk sinyal IE: bir bit interrupt enable flag IPC31..0: storage for PC saved upon interrupt II15..0: son interrupt kaynağı bilgisi Isrc_info15..0: interrupt kaynağından gelen bilgi Isrc_vect7..0: interrupt kaynagı dan tip kodu Ivect31..0:= 20@0#Isrc_vect7..0#4@0: From Dev. To Dev.  Internal  to CPU  “  From Dev  Ivect31..0 000 . . . 0 Isrc_vect7..0 0000 31 12 11 4 3

SRC Instruction Interpretation Modified for Interrupts (RunStrt  Run  1: Run(ireqIE)  (IR M[PC]: PC  PC + 4; instruction_execution): Run(ireqIE)  (IPC  PC31..0: II15..0 Isrc_info15..0: iack 1: IE 0: PC  Ivect31..0; iack  0); instruction_interpretation); If interrupts are enabled, PC and interrupt info. are stored in IPC and II, respectively With multiple requests, external priority circuit (discussed in later chapter) determines which vector & info. are returned Interrupts are disabled The acknowledge signal is pulsed

SRC Instruction Interpretation Modified for Interrupts (RunStrt  Run  1: Run(ireqIE)  (IR M[PC]: PC  PC + 4; instruction_execution): Run(ireqIE)  (IPC  PC31..0: II15..0 Isrc_info15..0: iack 1: IE 0: PC  Ivect31..0; iack  0); instruction_interpretation); Eğer interruptlar enable ise, PC ve interrupt bilgisi IPC ye ve II ye yüklenir. Çoklu istekler ile, external priority circuit hangi vektör ve bilgiyi döndürecegine karar verir. Interrupt lar disable edilir The acknowledge signal is pulsed

SRC Instructions to Support Interrupts Return from interrupt instruction rfi (:= op = 29 )  (PC  IPC: IE  1): Save and restore interrupt state svi (:= op = 16)  (R[ra]15..0  II15..0: R[rb]  IPC31..0): ri (:= op = 17)  (II15..0  R[ra]15..0 : IPC31..0 R[rb]): Enable and disable interrupt system een (:= op = 10 )  (IE  1): edi (:= op = 11 )  (IE  0): The 2 rfi actions are indivisible, can’t een & branch

SRC Instructions to Support Interrupts Return from interrupt instruction rfi (:= op = 29 )  (PC  IPC: IE  1): Save and restore interrupt state svi (:= op = 16)  (R[ra]15..0  II15..0: R[rb]  IPC31..0): ri (:= op = 17)  (II15..0  R[ra]15..0 : IPC31..0 R[rb]): Enable and disable interrupt system een (:= op = 10 )  (IE  1): edi (:= op = 11 )  (IE  0): The 2 rfi actions are indivisible, can’t een & branch

Concrete RTN for SRC Instruction Fetch with Interrupts Step (ireqIE) Concrete RTN  (ireqIE) T0. ((ireqIE)  ( (ireqIE)  (IPC  PC: II  Isrc_info: MA PC: C PC+4): IE  0: PC 20@0#Isrc_vect7..0#0000: Iack1); T1. MD M[MA] : PC  C; Iack 0: End; T2. IR MD; PC could be transferred to IPC over the bus II and IPC probably have separate inputs for the externally supplied values Iack is pulsed, described as 1; 0, which is easier as a control signal than in RTN

Concrete RTN for SRC Instruction Fetch with Interrupts Step (ireqIE) Concrete RTN  (ireqIE) T0. ((ireqIE)  ( (ireqIE)  (IPC  PC: II  Isrc_info: MA PC: C PC+4): IE  0: PC 20@0#Isrc_vect7..0#0000: Iack1); T1. MD M[MA] : PC  C; Iack 0: End; T2. IR MD; PC could be transferred to IPC over the bus II and IPC probably have separate inputs for the externally supplied values Iack is pulsed, described as 1; 0, which is easier as a control signal than in RTN

Exceptions During Instruction Execution Some exceptions occur in the middle of instructions Some CISCs have very long instructions, like string move Some exception conditions prevent instruction completion, like uninstalled memory To handle this sort of exception, the CPU must make special provision for restarting Partially completed actions must be reversed so the instruction can be re-executed after exception handling Information about the internal CPU state must be saved so that the instruction can resume where it left off We will see that this problem is acute with pipeline designs—always in middle of instructions.

Exceptions During Instruction Execution Some exceptions occur in the middle of instructions Some CISCs have very long instructions, like string move Some exception conditions prevent instruction completion, like uninstalled memory To handle this sort of exception, the CPU must make special provision for restarting Partially completed actions must be reversed so the instruction can be re-executed after exception handling Information about the internal CPU state must be saved so that the instruction can resume where it left off We will see that this problem is acute with pipeline designs—always in middle of instructions.