Datapath register transfers और control
सीखने के लक्ष्य और machine contract
Register, load और store को datapath में trace करें; इच्छित state change से control निकालें; single-cycle और multicycle control की तुलना करें। पूर्वज्ञान: instruction/addressing का मौजूदा पाठ और mux/register के आधार। Gate बनाना और arithmetic algorithms Digital Logic में हैं; उन्हें यहाँ नहीं दोहराया गया है।
हमारी teaching ISA में 32-bit registers, byte-addressed memory, चार-byte instructions और aligned valid accesses हैं। Exceptions तथा overflow नहीं हैं। ADD Rd,Rs,Rt का अर्थ R[Rd]←R[Rs]+R[Rt]; LD Rd,d(Rs) address R[Rs]+d से word पढ़ता है; ST Rt,d(Rs) उसी address पर R[Rt] लिखता है। Signed displacement d पहले से decode है। यह शिक्षण ISA है, किसी वास्तविक ISA का दावा नहीं।
1. Value और निर्णय अलग रखें
Datapath में storage, ALU, multiplexers और connections होते हैं। Control तय करता है कि कौन-से operands चुने जाएँ और कौन-सी state बदले। केवल combinational ALU output बनने से architectural state नहीं बदलती; सही समय पर write enable चाहिए।
हमारे single-cycle design में register file के दो read ports और एक write port, अलग instruction/data memories, arithmetic/address के लिए ALU और अलग PC+4 adder हैं। ALU के दूसरे input का mux Rt या d चुनता है। Writeback mux ALU result या memory data चुनता है। ये design assumptions हैं, सभी processors के अनिवार्य नियम नहीं।
2. Control table को अर्थ से निकालें
RegWrite तथा MemWrite active-high enables हैं। MemRead data-memory read request है। ALUSrc=0 पर Rt और 1 पर d; MemToReg=0 पर ALU output और 1 पर memory output मिलता है। इस छोटे instruction subset में ALU operation ADD है।
- ADD: RegWrite=1, MemRead=0, MemWrite=0, ALUSrc=0, MemToReg=0।
- LD: RegWrite=1, MemRead=1, MemWrite=0, ALUSrc=1, MemToReg=1।
- ST: RegWrite=0, MemRead=0, MemWrite=1, ALUSrc=1, MemToReg=X।
X का अर्थ है कि register write बंद होने से दोनों selections का architectural परिणाम समान है। इसका अर्थ enabled destination को अज्ञात data देना नहीं। Store में ALU दूसरा operand d लेता है, लेकिन memory-data input पर Rt का value जाता है।
हल किया trace: शुरू में R1=100, R2=7, M[112]=25। LD R3,12(R1) पहले 112 बनाता है, फिर 25 पढ़कर R3=25 करता है। ST R2,12(R1) भी 112 बनाता है लेकिन M[112]=7 लिखता है; R2 और R1 नहीं बदलते। ADD R4,R1,R2 से R4=107 होता है और data memory नहीं बदलती। हर non-branch के बाद PC चार बढ़ता है।
3. सबसे लंबा सक्रिय path clock तय करता है
Single-cycle में हर supported instruction एक period में पूरा होता है, इसलिए सबसे धीमा supported path period तय करता है, औसत path नहीं। मानें load path के serial delays हैं: instruction read 200 ps, register read 100 ps, ALU 150 ps, data read 250 ps, writeback mux/setup 50 ps। Decode/अन्य selections इन्हीं delays में शामिल हैं और PC path छोटा है। न्यूनतम period 750 ps है। ADD का path 500 ps हो तब भी वह 750 ps का cycle लेगा। Parallel stages या अतिरिक्त unlisted delays वाले design पर यह sum सीधे लागू न करें।
4. Multicycle execution और control का क्रम
Multicycle में instruction को steps में बाँटते हैं और बीच के values IR, A/B, ALUOut तथा MDR जैसे registers में बचाते हैं। Load का एक क्रम है: fetch; decode/read; address calculation; memory read; writeback। Store memory write पर समाप्त होता है; register-writeback step नहीं चाहिए। Shared ALU fetch में PC+4 और बाद के cycle में address निकाल सकता है। Hardware तभी सुरक्षित share होता है जब दोनों uses एक साथ उसे न माँगें।
हल किया समय: चुना हुआ clock period 250 ps है, जिसमें प्रत्येक step के सभी जरूरी register/clock overhead समाते हैं। तब पाँच-cycle load 1250 ps और चार-cycle store 1000 ps लेता है। छोटा clock period अपने आप 750 ps single-cycle से हर instruction को तेज नहीं बनाता। Multicycle और pipelining अलग हैं: बिना overlap अगला instruction इंतजार करता है।
Hardwired control logic तथा multicycle में state machine से signals बनाता है। Microprogrammed control, control store में रखे control words को क्रम में चलाता है। Microinstruction implementation का step नियंत्रित करती है; आवश्यक नहीं कि वह programmer-visible instruction हो। दोनों ISA का अर्थ सुरक्षित रखते हैं। Hardwired का अर्थ केवल single-cycle नहीं; microprogrammed में सभी ISA instructions की cycle count समान होना जरूरी नहीं।
जाँच और सामान्य गलतियाँ
- Value और destination दोनों लिखें; effective address, memory से पढ़ा data नहीं है।
- Store memory बदलता है, source register नहीं। अनचाहे writes बंद रखें।
- Load में writeback mux memory data चुने, address नहीं।
- Mux चयन तभी अप्रासंगिक है जब किसी enabled state change पर उसका प्रभाव न हो।
- कुल execution time की तुलना करें; केवल छोटा cycle या कम cycles पर्याप्त नहीं।
मौलिक अभ्यास: छह single-correct MCQ
ये मौलिक शिक्षण प्रश्न हैं, पिछले वर्षों के प्रश्न नहीं। ठीक एक उत्तर चुनें।
P01. बताए datapath में LD R5,8(R1), R1=64 तथा M[72]=19 है। R5 में क्या लिखा जाएगा?
A. 8 B. 64 C. 72 D. 19
उत्तर: D
A: 8 displacement है।
B: 64 base है।
C: 72 address है, loaded data नहीं।
D: Address=64+8=72; वहाँ का data 19 है।
P02. इस model में ST के लिए (RegWrite, MemWrite, ALUSrc) क्या है?
A. (1,0,1) B. (0,1,1) C. (0,1,0) D. (1,1,1)
उत्तर: B
A: यह memory के बजाय register write करता है।
B: Store memory लिखता, register write बंद रखता और displacement जोड़ता है।
C: ALUSrc=0 address के लिए displacement की जगह Rt चुनेगा।
D: RegWrite=1 अनचाहा register change कर सकता है।
P03. यहाँ ST के लिए MemToReg don’t-care क्यों है?
A. Memory कभी access नहीं होती B. ALU इस्तेमाल नहीं होता C. Register write बंद है D. सभी mux inputs समान हैं
उत्तर: C
A: ST data memory लिखता है।
B: ALU effective address बनाता है।
C: RegWrite=0 पर writeback mux output register नहीं बदल सकता।
D: Inputs समान होना जरूरी नहीं; destination write बंद है।
P04. सभी overhead सहित single-cycle paths 420, 600 और 780 ps हैं। न्यूनतम सुरक्षित period?
A. 420 ps B. 600 ps C. 780 ps D. 1800 ps
उत्तर: C
A: सबसे छोटा path period नहीं तय करता।
B: यह सबसे लंबा path छोड़ता है।
C: अधिकतम supported delay 780 ps है।
D: अलग instructions के paths को एक instruction में serially नहीं जोड़ते।
P05. बिना overlap multicycle load पाँच 200 ps cycles लेता है। Latency क्या है?
A. 200 ps B. 1000 ps C. 40 ps D. 800 ps
उत्तर: B
A: एक cycle केवल एक step है।
B: 5×200 ps=1000 ps।
C: Cycle time को stages से भाग देना गलत है।
D: चार cycles एक step छोड़ते हैं।
P06. Control के बारे में कौन-सा कथन सही है?
A. Hardwired control केवल single-cycle है B. Microinstruction हमेशा ISA instruction है C. Microprogrammed control load नहीं कर सकता D. Hardwired control state machine इस्तेमाल कर सकता है
उत्तर: D
A: Hardwired कई cycles का क्रम बना सकता है।
B: Microinstructions implementation-level control हैं।
C: Microprogram load के operations चला सकता है।
D: State machine cycles में outputs और next state चुन सकती है।
स्रोत और दायरा
यह 2026 course के बताए भाग का पाठ है, पूरे COA syllabus की समाप्ति नहीं। सभी गणनात्मक उदाहरण और प्रश्न मौलिक हैं। 2027 की पूर्णता का दावा नहीं।
प्रगति सहेजने के लिए साइन इन करें। साइन इन