寄存器概要
寄存器,是集成電路中非常重要的一種存儲(chǔ)單元,通常由觸發(fā)器組成。在集成電路設(shè)計(jì)中,寄存器可分為電路內(nèi)部使用的寄存器和充當(dāng)內(nèi)外部接口的寄存器這兩類。內(nèi)部寄存器不能被外部電路或軟件訪問(wèn),只是為內(nèi)部電路的實(shí)現(xiàn)存儲(chǔ)功能或滿足電路的時(shí)序要求。而接口寄存器可以同時(shí)被內(nèi)部電路和外部電路或軟件訪問(wèn),CPU中的寄存器就是其中一種,作為軟硬件的接口,為廣泛的通用編程用戶所熟知。
在計(jì)算機(jī)領(lǐng)域,寄存器是CPU內(nèi)部的元件,包括通用寄存器、專用寄存器和控制寄存器。寄存器擁有非常高的讀寫(xiě)速度,所以在寄存器之間的數(shù)據(jù)傳送非???。寄存器是內(nèi)存階層中的最頂端,也是系統(tǒng)獲得操作資料的最快速途徑。寄存器通常都是以他們可以保存的位元數(shù)量來(lái)估量。
寄存器分類
數(shù)據(jù)寄存器-用來(lái)儲(chǔ)存整數(shù)數(shù)字(參考以下的浮點(diǎn)寄存器)。在某些簡(jiǎn)單/舊的CPU,特別的數(shù)據(jù)寄存器是累加器,作為數(shù)學(xué)計(jì)算之用。
地址寄存器-持有存儲(chǔ)器地址,用來(lái)訪問(wèn)存儲(chǔ)器。在某些簡(jiǎn)單/舊的CPU里,特別的地址寄存器是索引寄存器(可能出現(xiàn)一個(gè)或多個(gè))。
通用目的寄存器(GPRs)-可以保存數(shù)據(jù)或地址兩者,也就是說(shuō)它們是結(jié)合數(shù)據(jù)/地址寄存器的功用。
浮點(diǎn)寄存器(FPRs)-用來(lái)儲(chǔ)存浮點(diǎn)數(shù)字。
常數(shù)寄存器-用來(lái)持有只讀的數(shù)值(例如0、1、圓周率等等)。
向量寄存器-用來(lái)儲(chǔ)存由向量處理器運(yùn)行SIMD(SingleInstruction,MultipleData)指令所得到的數(shù)據(jù)。
特殊目的寄存器-儲(chǔ)存CPU內(nèi)部的數(shù)據(jù),像是程序計(jì)數(shù)器(或稱為指令指針),堆棧寄存器,以及狀態(tài)寄存器(或稱微處理器狀態(tài)字組)。
指令寄存器(instructionregister)-儲(chǔ)存現(xiàn)在正在被運(yùn)行的指令。
索引寄存器(indexregister)-是在程序運(yùn)行時(shí)用來(lái)更改運(yùn)算對(duì)象地址之用。
在某些架構(gòu)下,模式指示寄存器(也稱為“機(jī)器指示寄存器”)儲(chǔ)存和設(shè)置跟處理器自己有關(guān)的數(shù)據(jù)。由于他們的意圖目的是附加到特定處理器的設(shè)計(jì),因此他們并不被預(yù)期會(huì)成為微處理器世代之間保留的標(biāo)準(zhǔn)。
有關(guān)從隨機(jī)存取存儲(chǔ)器提取信息的寄存器與CPU(位于不同芯片的儲(chǔ)存寄存器集合)
存儲(chǔ)器緩沖寄存器(Memorybufferregister)
存儲(chǔ)器數(shù)據(jù)寄存器(Memorydataregister)
存儲(chǔ)器地址寄存器(Memoryaddressregister)
存儲(chǔ)器型態(tài)范圍寄存器(MemoryTypeRangeRegisters)
向量寄存器
?
寄存器特點(diǎn)與用途
特點(diǎn):
?、偌拇嫫魑挥贑PU內(nèi)部,數(shù)量很少,僅十四個(gè)
?、诩拇嫫魉艽鎯?chǔ)的數(shù)據(jù)不一定是8bit,有一些寄存器可以存儲(chǔ)16bit數(shù)據(jù),對(duì)于386/486處理器中的一些寄存器則能存儲(chǔ)32bit數(shù)據(jù)
?、勖總€(gè)內(nèi)部寄存器都有一個(gè)名字,而沒(méi)有類似存儲(chǔ)器的地址編號(hào)。
用途:
1.可將寄存器內(nèi)的數(shù)據(jù)執(zhí)行算術(shù)及邏輯運(yùn)算
2.存于寄存器內(nèi)的地址可用來(lái)指向內(nèi)存的某個(gè)位置,即尋址
3.可以用來(lái)讀寫(xiě)數(shù)據(jù)到電腦的周邊設(shè)備。
觸發(fā)器概要
觸發(fā)器(trigger)是SQLserver提供給程序員和數(shù)據(jù)分析員來(lái)保證數(shù)據(jù)完整性的一種方法,它是與表事件相關(guān)的特殊的存儲(chǔ)過(guò)程,它的執(zhí)行不是由程序調(diào)用,也不是手工啟動(dòng),而是由事件來(lái)觸發(fā),比如當(dāng)對(duì)一個(gè)表進(jìn)行操作(insert,delete,update)時(shí)就會(huì)激活它執(zhí)行。觸發(fā)器經(jīng)常用于加強(qiáng)數(shù)據(jù)的完整性約束和業(yè)務(wù)規(guī)則等。觸發(fā)器可以從DBA_TRIGGERS,USER_TRIGGERS數(shù)據(jù)字典中查到。SQL3的觸發(fā)器是一個(gè)能由系統(tǒng)自動(dòng)執(zhí)行對(duì)數(shù)據(jù)庫(kù)修改的語(yǔ)句。
觸發(fā)器可以查詢其他表,而且可以包含復(fù)雜的SQL語(yǔ)句。它們主要用于強(qiáng)制服從復(fù)雜的業(yè)務(wù)規(guī)則或要求。例如:您可以根據(jù)客戶當(dāng)前的帳戶狀態(tài),控制是否允許插入新訂單。
觸發(fā)器也可用于強(qiáng)制引用完整性,以便在多個(gè)表中添加、更新或刪除行時(shí),保留在這些表之間所定義的關(guān)系。然而,強(qiáng)制引用完整性的最好方法是在相關(guān)表中定義主鍵和外鍵約束。如果使用數(shù)據(jù)庫(kù)關(guān)系圖,則可以在表之間創(chuàng)建關(guān)系以自動(dòng)創(chuàng)建外鍵約束。
觸發(fā)器與存儲(chǔ)過(guò)程的唯一區(qū)別是觸發(fā)器不能執(zhí)行EXECUTE語(yǔ)句調(diào)用,而是在用戶執(zhí)行Transact-SQL語(yǔ)句時(shí)自動(dòng)觸發(fā)執(zhí)行。
觸發(fā)器分類
1、DML觸發(fā)器
當(dāng)數(shù)據(jù)庫(kù)中表中的數(shù)據(jù)發(fā)生變化時(shí),包括insert,update,delete任意操作,如果我們對(duì)該表寫(xiě)了對(duì)應(yīng)的DML觸發(fā)器,那么該觸發(fā)器自動(dòng)執(zhí)行。DML觸發(fā)器的主要作用在于強(qiáng)制執(zhí)行業(yè)務(wù)規(guī)則,以及擴(kuò)展SqlServer約束,默認(rèn)值等。因?yàn)槲覀冎兰s束只能約束同一個(gè)表中的數(shù)據(jù),而觸發(fā)器中則可以執(zhí)行任意Sql命令。
2、DDL觸發(fā)器
它是SqlServer2005新增的觸發(fā)器,主要用于審核與規(guī)范對(duì)數(shù)據(jù)庫(kù)中表,觸發(fā)器,視圖等結(jié)構(gòu)上的操作。比如在修改表,修改列,新增表,新增列等。它在數(shù)據(jù)庫(kù)結(jié)構(gòu)發(fā)生變化時(shí)執(zhí)行,我們主要用它來(lái)記錄數(shù)據(jù)庫(kù)的修改過(guò)程,以及限制程序員對(duì)數(shù)據(jù)庫(kù)的修改,比如不允許刪除某些指定表等。
3、登錄觸發(fā)器
登錄觸發(fā)器將為響應(yīng)LOGIN事件而激發(fā)存儲(chǔ)過(guò)程。與SQLServer實(shí)例建立用戶會(huì)話時(shí)將引發(fā)此事件。登錄觸發(fā)器將在登錄的身份驗(yàn)證階段完成之后且用戶會(huì)話實(shí)際建立之前激發(fā)。因此,來(lái)自觸發(fā)器內(nèi)部且通常將到達(dá)用戶的所有消息(例如錯(cuò)誤消息和來(lái)自PRINT語(yǔ)句的消息)會(huì)傳送到SQLServer錯(cuò)誤日志。如果身份驗(yàn)證失敗,將不激發(fā)登錄觸發(fā)器。
觸發(fā)器作用
1、可在寫(xiě)入數(shù)據(jù)表前,強(qiáng)制檢驗(yàn)或轉(zhuǎn)換數(shù)據(jù)。
2、觸發(fā)器發(fā)生錯(cuò)誤時(shí),異動(dòng)的結(jié)果會(huì)被撤銷。
3、部分?jǐn)?shù)據(jù)庫(kù)管理系統(tǒng)可以針對(duì)數(shù)據(jù)定義語(yǔ)言(DDL)使用觸發(fā)器,稱為DDL觸發(fā)器。
4、可依照特定的情況,替換異動(dòng)的指令(INSTEADOF)。
寄存器和觸發(fā)器的區(qū)別
寄存器是由觸發(fā)器和門(mén)電路構(gòu)成的。寄存器中的一個(gè)位用簡(jiǎn)單的同步D觸發(fā)器就可以了,8位的寄存器很明顯就是用了8個(gè)同步D觸發(fā)器。
評(píng)論