寄存器概要
寄存器,是集成電路中非常重要的一種存儲單元,通常由觸發(fā)器組成。在集成電路設計中,寄存器可分為電路內(nèi)部使用的寄存器和充當內(nèi)外部接口的寄存器這兩類。內(nèi)部寄存器不能被外部電路或軟件訪問,只是為內(nèi)部電路的實現(xiàn)存儲功能或滿足電路的時序要求。而接口寄存器可以同時被內(nèi)部電路和外部電路或軟件訪問,CPU中的寄存器就是其中一種,作為軟硬件的接口,為廣泛的通用編程用戶所熟知。
在計算機領(lǐng)域,寄存器是CPU內(nèi)部的元件,包括通用寄存器、專用寄存器和控制寄存器。寄存器擁有非常高的讀寫速度,所以在寄存器之間的數(shù)據(jù)傳送非??臁<拇嫫魇莾?nèi)存階層中的最頂端,也是系統(tǒng)獲得操作資料的最快速途徑。寄存器通常都是以他們可以保存的位元數(shù)量來估量。
寄存器分類
數(shù)據(jù)寄存器-用來儲存整數(shù)數(shù)字(參考以下的浮點寄存器)。在某些簡單/舊的CPU,特別的數(shù)據(jù)寄存器是累加器,作為數(shù)學計算之用。
地址寄存器-持有存儲器地址,用來訪問存儲器。在某些簡單/舊的CPU里,特別的地址寄存器是索引寄存器(可能出現(xiàn)一個或多個)。
通用目的寄存器(GPRs)-可以保存數(shù)據(jù)或地址兩者,也就是說它們是結(jié)合數(shù)據(jù)/地址寄存器的功用。
浮點寄存器(FPRs)-用來儲存浮點數(shù)字。
常數(shù)寄存器-用來持有只讀的數(shù)值(例如0、1、圓周率等等)。
向量寄存器-用來儲存由向量處理器運行SIMD(SingleInstruction,MultipleData)指令所得到的數(shù)據(jù)。
特殊目的寄存器-儲存CPU內(nèi)部的數(shù)據(jù),像是程序計數(shù)器(或稱為指令指針),堆棧寄存器,以及狀態(tài)寄存器(或稱微處理器狀態(tài)字組)。
指令寄存器(instructionregister)-儲存現(xiàn)在正在被運行的指令。
索引寄存器(indexregister)-是在程序運行時用來更改運算對象地址之用。
在某些架構(gòu)下,模式指示寄存器(也稱為“機器指示寄存器”)儲存和設置跟處理器自己有關(guān)的數(shù)據(jù)。由于他們的意圖目的是附加到特定處理器的設計,因此他們并不被預期會成為微處理器世代之間保留的標準。
有關(guān)從隨機存取存儲器提取信息的寄存器與CPU(位于不同芯片的儲存寄存器集合)
存儲器緩沖寄存器(Memorybufferregister)
存儲器數(shù)據(jù)寄存器(Memorydataregister)
存儲器地址寄存器(Memoryaddressregister)
存儲器型態(tài)范圍寄存器(MemoryTypeRangeRegisters)
向量寄存器

?
寄存器特點與用途
特點:
①寄存器位于CPU內(nèi)部,數(shù)量很少,僅十四個
?、诩拇嫫魉艽鎯Φ臄?shù)據(jù)不一定是8bit,有一些寄存器可以存儲16bit數(shù)據(jù),對于386/486處理器中的一些寄存器則能存儲32bit數(shù)據(jù)
?、勖總€內(nèi)部寄存器都有一個名字,而沒有類似存儲器的地址編號。
用途:
1.可將寄存器內(nèi)的數(shù)據(jù)執(zhí)行算術(shù)及邏輯運算
2.存于寄存器內(nèi)的地址可用來指向內(nèi)存的某個位置,即尋址
3.可以用來讀寫數(shù)據(jù)到電腦的周邊設備。

觸發(fā)器概要
觸發(fā)器(trigger)是SQLserver提供給程序員和數(shù)據(jù)分析員來保證數(shù)據(jù)完整性的一種方法,它是與表事件相關(guān)的特殊的存儲過程,它的執(zhí)行不是由程序調(diào)用,也不是手工啟動,而是由事件來觸發(fā),比如當對一個表進行操作(insert,delete,update)時就會激活它執(zhí)行。觸發(fā)器經(jīng)常用于加強數(shù)據(jù)的完整性約束和業(yè)務規(guī)則等。觸發(fā)器可以從DBA_TRIGGERS,USER_TRIGGERS數(shù)據(jù)字典中查到。SQL3的觸發(fā)器是一個能由系統(tǒng)自動執(zhí)行對數(shù)據(jù)庫修改的語句。
觸發(fā)器可以查詢其他表,而且可以包含復雜的SQL語句。它們主要用于強制服從復雜的業(yè)務規(guī)則或要求。例如:您可以根據(jù)客戶當前的帳戶狀態(tài),控制是否允許插入新訂單。
觸發(fā)器也可用于強制引用完整性,以便在多個表中添加、更新或刪除行時,保留在這些表之間所定義的關(guān)系。然而,強制引用完整性的最好方法是在相關(guān)表中定義主鍵和外鍵約束。如果使用數(shù)據(jù)庫關(guān)系圖,則可以在表之間創(chuàng)建關(guān)系以自動創(chuàng)建外鍵約束。
觸發(fā)器與存儲過程的唯一區(qū)別是觸發(fā)器不能執(zhí)行EXECUTE語句調(diào)用,而是在用戶執(zhí)行Transact-SQL語句時自動觸發(fā)執(zhí)行。
觸發(fā)器分類
1、DML觸發(fā)器
當數(shù)據(jù)庫中表中的數(shù)據(jù)發(fā)生變化時,包括insert,update,delete任意操作,如果我們對該表寫了對應的DML觸發(fā)器,那么該觸發(fā)器自動執(zhí)行。DML觸發(fā)器的主要作用在于強制執(zhí)行業(yè)務規(guī)則,以及擴展SqlServer約束,默認值等。因為我們知道約束只能約束同一個表中的數(shù)據(jù),而觸發(fā)器中則可以執(zhí)行任意Sql命令。
2、DDL觸發(fā)器
它是SqlServer2005新增的觸發(fā)器,主要用于審核與規(guī)范對數(shù)據(jù)庫中表,觸發(fā)器,視圖等結(jié)構(gòu)上的操作。比如在修改表,修改列,新增表,新增列等。它在數(shù)據(jù)庫結(jié)構(gòu)發(fā)生變化時執(zhí)行,我們主要用它來記錄數(shù)據(jù)庫的修改過程,以及限制程序員對數(shù)據(jù)庫的修改,比如不允許刪除某些指定表等。
3、登錄觸發(fā)器
登錄觸發(fā)器將為響應LOGIN事件而激發(fā)存儲過程。與SQLServer實例建立用戶會話時將引發(fā)此事件。登錄觸發(fā)器將在登錄的身份驗證階段完成之后且用戶會話實際建立之前激發(fā)。因此,來自觸發(fā)器內(nèi)部且通常將到達用戶的所有消息(例如錯誤消息和來自PRINT語句的消息)會傳送到SQLServer錯誤日志。如果身份驗證失敗,將不激發(fā)登錄觸發(fā)器。
觸發(fā)器作用
1、可在寫入數(shù)據(jù)表前,強制檢驗或轉(zhuǎn)換數(shù)據(jù)。
2、觸發(fā)器發(fā)生錯誤時,異動的結(jié)果會被撤銷。
3、部分數(shù)據(jù)庫管理系統(tǒng)可以針對數(shù)據(jù)定義語言(DDL)使用觸發(fā)器,稱為DDL觸發(fā)器。
4、可依照特定的情況,替換異動的指令(INSTEADOF)。
寄存器和觸發(fā)器的區(qū)別
寄存器是由觸發(fā)器和門電路構(gòu)成的。寄存器中的一個位用簡單的同步D觸發(fā)器就可以了,8位的寄存器很明顯就是用了8個同步D觸發(fā)器。
電子發(fā)燒友App

































評論