Kontrol birimi, bir programın yürütülmesi sırasında işlemleri yönetebilen bilgisayarlardaki merkezi işlem biriminin (CPU) ana bileşenidir. işlemci /bilgisayar. Kontrol ünitesinin ana işlevi, bir bilgisayarın belleğinden talimatlar almak ve yürütmektir. Kullanıcıdan giriş talimatını / bilgilerini alır ve bunu kontrol sinyalleri , bunlar daha sonra çalıştırılması için CPU'ya verilir. John Neumann tarafından geliştirilen Von Neumann mimarisinin bir parçası olarak dahil edilmiştir. Zamanlama sinyallerini ve kontrol sinyallerini sağlamaktan sorumludur ve bir programın CPU tarafından yürütülmesini yönetir. Modern bilgisayarlarda CPU'nun dahili bir parçası olarak bulunur. Bu makale, kontrol ünitesi hakkında eksiksiz bilgileri açıklamaktadır.
Kontrol Ünitesi nedir?
Kullanıcıdan giriş sinyalini / bilgileri / talimatı alan ve CPU'da yürütme için kontrol sinyallerine dönüştüren bileşen. Ana belleği, aritmetik ve mantık birimini (ALU), giriş ve çıkış cihazlarını kontrol eder ve yönlendirir ve ayrıca bir bilgisayarın CPU'suna gönderilen talimatlardan sorumludur. Talimatları şuradan alır: ana hafıza bir işlemcinin ve yazmaç içeriklerini içeren işlemci talimat yazmacına gönderilir.
Kontrol Ünitesi Blok Şeması
Kontrol ünitesi, girişi kontrol sinyallerine dönüştürür ve ardından işlemciye gönderir ve bir programın yürütülmesini yönlendirir. Yapılması gereken işlemler bilgisayardaki işlemci tarafından yönlendirilir. Temelde Merkezi İşlem Birimi (CPU) ve Grafik İşleme Birimi (GPU), dahili parça olarak bir kontrol ünitesi gerektirir. Kontrol ünitesinin blok şeması yukarıda gösterilmiştir.
Bir Kontrol Ünitesinin Bileşenleri
Bu birimin bileşenleri talimattır kayıtlar CPU içindeki kontrol sinyalleri, veri yoluna / veri yolundan kontrol sinyalleri, kontrol veriyolu, giriş bayrakları ve saat sinyalleri.
Donanım bağlantılı kontrol ünitesinin bileşenleri komut kaydı (işlem kodu ve adres alanı içerir), zamanlama ünitesi, kontrol durumudur. jeneratör , kontrol sinyali oluşturma matrisi ve komut kod çözücüsü.
Mikro programlanmış kontrol biriminin bileşenleri, bir sonraki adres üreteci, bir kontrol adresi yazmacı, kontrol hafızası ve kontrol veri kaydıdır.
Fonksiyonlar
kontrol ünitesinin fonksiyonları aşağıdakileri dahil edin.
- İşlemci ile diğer cihazlar arasındaki veri dizisi akışını yönlendirir.
- Talimatları yorumlayabilir ve işlemcideki veri akışını kontrol edebilir.
- Alınan talimatlardan veya talimat yazmacından gelen komutlardan kontrol sinyallerinin sırasını üretir.
- ALU, veri arabellekleri ve bir bilgisayarın CPU'sundaki kayıtlar gibi yürütme birimlerini kontrol etme sorumluluğuna sahiptir.
- Getirme, kod çözme, yürütmeyi yönetme ve sonuçları saklama becerisine sahiptir.
- Verileri işleyemez ve saklayamaz
- Verileri aktarmak için, giriş ve çıkış cihazları ile iletişim kurar ve bilgisayarın tüm birimlerini kontrol eder.
Kontrol Ünitesi Tasarımı
Bunun tasarımı iki kullanılarak yapılabilir bir kontrol birimi türleri aşağıdakileri içerir.
- Hardwire tabanlı
- Mikro programlanmış tabanlı (tek seviyeli ve iki seviyeli)
Kablolu Kontrol Birimi
Kablolu bir kontrol biriminin temel tasarımı yukarıda gösterilmiştir. Bu tipte, kontrol sinyalleri özel bir donanım tarafından üretilir. mantık devresi Devrenin yapısında herhangi bir değişiklik olmadan. Bunda, üretilen sinyal işlemcide çalıştırılmak üzere değiştirilemez.
Bir işlem kodunun temel verileri (bir talimatın işlem kodu, kod çözme için talimat kod çözücüsüne gönderilir. kod çözücü işlem kodundaki farklı veri türlerinin kodunu çözmek için kod çözücü kümesidir. Bu, bilgisayarın işlemcisi tarafından bir programın yürütülmesi için kontrol sinyallerinin üretilmesi için matris üretecine giriş olarak verilen aktif sinyallerin değerlerini içeren çıkış sinyalleri ile sonuçlanır.
Hardwire tabanlı Kontrol ünitesi
Matris üreteci, kontrol biriminin durumlarını ve işlemciden çıkan sinyalleri (kesme sinyalleri) sağlar. Matrix, programlanabilir mantık dizisi . Matris üreteci tarafından üretilen kontrol sinyalleri, bir sonraki jeneratör matrisine girdi olarak verilir ve dikdörtgen desenler içeren zamanlama biriminin zamanlama sinyalleri ile birleşir.
Yeni komutun getirilmesi için, kontrol ünitesi yeni komutun yürütülmesi için bir başlangıç aşamasına dönüşür. Kontrol ünitesi, bir bilgisayarın zamanlama sinyalleri, giriş sinyalleri ve talimat durumları değişmediği sürece ilk aşamada veya birinci aşamada kalır. Üretilen sinyallerin herhangi birinde herhangi bir değişiklik olması durumunda, kontrol ünitesinin durumundaki değişiklik yükseltilebilir.
Harici bir sinyal veya kesinti meydana geldiğinde, kontrol ünitesi bir sonraki duruma geçer ve kesinti sinyalinin işlenmesini gerçekleştirir. Bayraklar ve durumlar, talimatın yürütme döngüsünü gerçekleştirmek için istenen durumları seçmek için kullanılır.
Son durumda, kontrol ünitesi bir sonraki talimatı alır ve çıktıyı program sayacına, ardından hafıza adres yazmacına, tampon yazmacına ve sonra talimatı okumak için talimat yazmacına gönderir. Son olarak, son talimat (kontrol ünitesi tarafından getirilen) son talimat ise, işlemcinin çalışma durumuna geçer ve kullanıcı bir sonraki programı yönlendirene kadar bekler.
Mikro Programlı Kontrol Ünitesi
Bu tipte kontrol deposu, bir programın yürütülmesi sırasında kodlanan kontrol sinyallerini saklamak için kullanılır. Mikroprogram, kontrol deposundaki adres alanını sakladığından kontrol sinyali hemen üretilmez ve kodu çözülmez. Tüm süreç tek bir seviyedir.
Mikro işlemler, programdaki mikro komutların yürütülmesi için yapılır. Mikro programlanmış kontrol ünitesinin blok şeması yukarıda gösterilmiştir. Diyagramdan, mikro talimatın adresi kontrol belleği adres yazmacından elde edilir. Kontrol ünitesinin tüm bilgileri, ROM adı verilen kontrol hafızasında kalıcı olarak saklanır.
Mikro programlanmış tabanlı Kontrol Birimi
Kontrol belleğindeki mikro talimat, kontrol yazmacı tarafından tutulur. Mikro talimat, veri işleme için 1 veya daha fazla mikro işlemin gerçekleştirilmesi gereken kontrol kelimesi (ikili kontrol değerlerini içerir) biçiminde olduğundan.
Mikro talimatların yürütülmesi sırasında, bir sonraki adres üreteci mikro talimatın bir sonraki adresini hesapladı ve ardından bir sonraki mikro talimatı okumak için kontrol adresi yazmacına yolladı.
Bir mikro programın mikro işlem dizisi, bir sonraki adres üreteci tarafından gerçekleştirilir ve sıra adresini almak, yani kontrol belleğinden okumak için mikro program sıralayıcı olarak işlev görür.
Kontrol Ünitesi için Verilog Kodu
Kontrol Ünitesi için Verilog kodu aşağıda gösterilmiştir.
'' prj_definition.v 'içerir
modül CONTROL_UNIT (MEM_DATA, RF_DATA_W, RF_ADDR_W, RF_ADDR_R1, RF_ADDR_R2, RF_READ, RF_WRITE, ALU_OP1, ALU_OP2, ALU_OPRN, MEM_ADDR, MEM_REK, MEM_WRITE, RFRITE_RF_DATA_)
// Çıkış sinyalleri
// Kayıt dosyası için çıktılar
çıktı [`DATA_INDEX_LIMIT: 0] RF_DATA_W
çıktı [`ADDRESS_INDEX_LIMIT: 0] RF_ADDR_W, RF_ADDR_R1, RF_ADDR_R2
çıktı RF_READ, RF_WRITE
// ALU için çıktılar
çıktı [`DATA_INDEX_LIMIT: 0] ALU_OP1, ALU_OP2
çıktı [`ALU_OPRN_INDEX_LIMIT: 0] ALU_OPRN
// Bellek için çıktılar
çıktı [`ADDRESS_INDEX_LIMIT: 0] MEM_ADDR
çıktı MEM_READ, MEM_WRITE
// Giriş sinyalleri
girdi [`DATA_INDEX_LIMIT: 0] RF_DATA_R1, RF_DATA_R2, ALU_RESULT
SIFIR, CLK, RST girişi
// Giriş sinyali
inout [`DATA_INDEX_LIMIT: 0] MEM_DATA
// Devlet ağları
tel [2: 0] proc_state
// program sayacı değerini tutar, geçerli talimatı saklar, yığın işaretçisi kaydı
reg MEM_READ, MEM_WRITE
reg MEM_ADDR
reg ALU_OP1, ALU_OP2
reg ALU_OPRN
reg RF_ADDR_W, RF_ADDR_R1, RF_ADDR_R2
reg RF_DATA_W
reg [1: 0] durum, sonraki_devlet
PROC_SM durum_makinesi (.STATE (proc_state) ,. CLK (CLK) ,. RST (RST))
her zaman @ (poz CLK)
başla
eğer (RST)
durum<= RST
Başka
durum<= next_state
son
her zaman @ (durum)
başla
MEM_READ = 1’b0 MEM_WRITE = 1’b0 MEM_ADDR = 1’b0
ALU_OP1 = 1’b0 ALU_OP2 = 1’b0 ALU_OPRN = 1’b0
RF_ADDR_R1 = 1’b0 RF_ADDR_R2 = 1’b0 RF_ADDR_W = 1’b0 RF_DATA_W = 1’b0
durum (durum)
`PROC_FETCH: başla
next_state = `PROC_DECODE
MEM_READ = 1’b1
RF_ADDR_R1 = 1’b0 RF_ADDR_R2 = 1’b0
RF_ADDR_W = 1’b1
son
`PROC_DECODE: başla
next_state = `PROC_EXE
MEM_ADDR = 1’b1
ALU_OP1 = 1’b1 ALU_OP2 = 1’b1 ALU_OPRN = 1’b1
MEM_WRITE = 1’b1
RF_ADDR_R1 = 1’b1 RF_ADDR_R2 = 1’b1
son
PROC_EXE: başla
next_state = `PROC_MEM
ALU_OP1 = 1’b1 ALU_OP2 = 1’b1 ALU_OPRN = 1’b1
RF_ADDR_R1 = 1’b0
son
`PROC_MEM: başla
next_state = `PROC_WB
MEM_READ = 1’b1 MEM_WRITE = 1’b0
son
`PROC_WB: başla
next_state = `PROC_FETCH
MEM_READ = 1’b1 MEM_WRITE = 1’b0
son
son kasa
son
son modül
PROC_SM modülü (STATE, CLK, RST)
// girdi listesi
CLK girişi, RST
// çıktıların listesi
çıktı [2: 0] STATE
// giriş listesi
CLK girişi, RST
// çıktı listesi
STATE çıkışı
reg [2: 0] STATE
reg [1: 0] durumu
kayıt [1: 0] next_state
reg PC_REG, INST_REG, SP_REF
`PROC_FETCH 3’h0 tanımlayın
`PROC_DECODE 3’h1 tanımlayın
`PROC_EXE 3’h2'yi tanımlayın
`PROC_MEM 3’h3'ü tanımlayın
`PROC_WB 3’h4'ü tanımlayın
// devletin başlangıcı
ilk
başla
durum = 2’bxx
next_state = `PROC_FETCH
son
// sinyal işlemeyi sıfırla
her zaman @ (poz RST)
başla
state = `PROC_FETCH
next_state = `PROC_FETCH
son
her zaman @ (poz CLK)
başla
state = next_state
son
her zaman @ (durum)
başla
eğer (durum === `PROC_FETCH)
başla
next_state = `PROC_DECODE
print_instruction (INST_REG)
son
eğer (durum === `PROC_DECODE)
başla
next_state = `PROC_EXE
son
eğer (durum === `PROC_EXE)
başla
next_state = `PROC_MEM
print_instruction (SP_REF)
son
eğer (durum === `PROC_MEM)
başla
next_state = `PROC_WB
son
eğer (durum === `PROC_WB)
başla
next_state = `PROC_FETCH
print_instruction (PC_REG)
son
son
görev print_instruction
giriş [`DATA_INDEX_LIMIT: 0] inst
reg [5: 0] opcode
reg [4: 0] rs
reg [4: 0] rt
reg [4: 0] rd
reg [4: 0] shamt reg [5: 0] funct reg [15: 0] acil kayıt [25: 0] adresi
başla
// talimatı ayrıştırın
// R tipi
{opcode, rs, rt, rd, shamt, funct} = inst
// I tipi
{opcode, rs, rt, hemen} = inst
// J türü
{işlem kodu, adres} = örnek
$ yazma (“@% 6dns -> [0X% 08h]“, $ zaman, inst)
case (opcode) // R-Type
6'h00: başlangıç
durum (işlev)
6’daki 20: $ yazma ('r [% 02d], r [% 02d], r [% 02d]', rs, rt, rd ekle)
6’s22: $ yazma ('alt r [% 02d], r [% 02d], r [% 02d]', rs, rt, rd)
6’h2c: $ yazma ('mul r [% 02d], r [% 02d], r [% 02d]', rs, rt, rd)
6’h24: $ write ('ve r [% 02d], r [% 02d], r [% 02d]', rs, rt, rd)
6’h25: $ write (“veya r [% 02d], r [% 02d], r [% 02d]”, rs, rt, rd)
6’h27: $ yazma ('nor r [% 02d], r [% 02d], r [% 02d]', rs, rt, rd)
6’h2a: $ yazma ('slt r [% 02d], r [% 02d], r [% 02d]', rs, rt, rd)
06:00: $ yazma ('sll r [% 02d],% 2d, r [% 02d]', rs, shamt, rd)
6’h02: $ write ('srl r [% 02d], 0X% 02h, r [% 02d]', rs, shamt, rd)
6’h08: $ write (“jr r [% 02d]”, rs)
varsayılan: $ yazma ('')
son kasa
son
// I tipi
6’h08: $ write ('addi r [% 02d], r [% 02d], 0X% 04h', rs, rt, hemen)
6’h1d: $ yazma ('muli r [% 02d], r [% 02d], 0X% 04h', rs, rt, anında)
6’h0c: $ write ('andi r [% 02d], r [% 02d], 0X% 04h', rs, rt, hemen)
6’h0d: $ yazma ('ori r [% 02d], r [% 02d], 0X% 04h', rs, rt, hemen)
6’h0f: $ write ('lui r [% 02d], 0X% 04h', rt, anında)
6’h0a: $ write ('slti r [% 02d], r [% 02d], 0X% 04h', rs, rt, anında)
6’h04: $ write ('beq r [% 02d], r [% 02d], 0X% 04h', rs, rt, hemen)
6’h05: $ write ('bne r [% 02d], r [% 02d], 0X% 04h', rs, rt, hemen)
6’h23: $ yazma ('lw r [% 02d], r [% 02d], 0X% 04h', rs, rt, anında)
6’h2b: $ yazma ('sw r [% 02d], r [% 02d], 0X% 04h', rs, rt, anında)
// J-Tipi
6’h02: $ write ('jmp 0X% 07h', adres)
6’h03: $ write ('jal 0X% 07h', adres)
6’h1b: $ yazma ('itme')
6’h1c: $ write ('pop')
varsayılan: $ yazma ('')
son kasa
$ yazma (' n')
son
görevi bitir
son modül
SSS
1). Bir kontrol ünitesinin işi nedir?
Kontrol biriminin işi, bir bilgisayarın işlemcisi tarafından yürütülmesi için veri akışını veya talimatları yönlendirmektir. Ana belleği, ALU'yu, kayıtları, giriş ve çıkış birimlerini kontrol eder, yönetir ve koordine eder. Talimatları alır ve yürütme için kontrol sinyalleri üretir.
2). Kontrol hafızası nedir?
Kontrol hafızası, kontrol kaydının adresini ve verilerini saklamak için genellikle RAM veya ROM'dur.
3). Wilkes kontrol ünitesi nedir?
Sıralı ve kombinasyonel devreler kablolu kontrol ünitesinin yerini Wilkes kontrol ünitesi alır. Bir mikro programın komut dizilerini saklamak için bir depolama birimi kullanır.
4). Kablolu kontrol birimi nedir?
Fiziksel bağlantılı kontrol ünitesi, devrede herhangi bir fiziksel değişiklik olmaksızın her saat darbesinde bir durumdan diğerine geçerek kontrol sinyallerini üretir. Kontrol sinyallerinin üretilmesi, komut kaydına, kod çözücüye ve kesme sinyallerine bağlıdır.
5). Kontrol hafızası nedir?
Kontrol birimine ait bilgiler veya veriler, geçici veya kalıcı olarak kontrol belleğinde saklanır.
Kontrol belleği iki türdendir. Bunlar Rasgele Erişim Belleği (RAM) ve Salt Okunur Bellek (ROM) 'dur.
Dolayısıyla, bu tamamen tanım, bileşenler, tasarım, diyagram, işlevler ve Kontrol Birimi türleri . İşte size bir soru: 'Kontrol adresi kaydının amacı nedir?'