877 CO 小筆記


補碼和移碼的關系,求補關系(求補包括符號位要反轉)

移碼

[x] = x + 2n ,n是數據長度

 對階,小對大

 算術移位,帶符號位移動

 邏輯移位,不帶符號位移動

 DRAM比SRAM集成度低

 RISC指令集特點

1. 選取使用頻度較高的一些簡單指令以及一些很有用但又不復雜的指令,讓復雜指令的功能由頻度高的簡單指令的組合來實現。
2. 指令長度固定,指令格式種類,尋址方式種類。
3. 只有取數/存數指令訪問存儲器,其余指令的操作都在寄存器內完成。
4. CPU中有多個通用寄存器。
5. 采用流水線技術,大部分指令在一個時鍾周期內完成。采用超標量和超流水線技術,可使每條指令的平均執行時間小於一個時鍾周期。
6. 控制器采用組合邏輯控制,不用微程序控制。
7. 采用優化的編譯程序

 

為什么說計算機系統中硬件、軟件在邏輯上功能等效?

軟件的功能可以用硬件實現,硬件的功能可以用軟件實現

補碼一位乘法的規則

  • 均以補碼表示,符號位參與運算,采用雙符號位
  • 乘數最低為增設yn+1,且初始為0
  • yn和yn+1作為乘法判別位,0 0,部分積+0右移,1 1,部分積+0右移,0 1,部分積+[x] 右移,1 0, 部分積-[x] 左移
  • 重復n+1次,最后只運算,不作積

通過迭代法可以提高乘法運算速度

CPU響應中斷后,中斷響應周期內完成的操作

  • 關中斷
  • 保存斷點
  • 轉向中斷程序
  • 保護現場和屏蔽字
  • 開中斷
  • 執行中斷服務程序
  • 關中斷

組成指令流水線的各功能段執行時間最好是 盡量相等

總線的主、從設備(總線操作的對象)

  • 總線的主設備是指獲得總線控制權的設備
  • 總線的從設備是指只能被主設備訪問的設備,只能響應從指設備發來的總線命令

 

 設機器字長為8位,[x]補=10101100,[y]補=01000110,則[x]補-[y]補的運算結果是

多體交叉存儲器主要是為了提高存取速度,增加帶寬

Cache的功能均由硬件實現

掛接在總線上的多個部件,分時向總線發送數據,同時從總線接收數據

取指周期從內存讀出的信息流稱為指令,它是從內存流向CPU

解決存儲器在容量、價格和速度三者之間的矛盾

程序局部性原理,是指程序在執行時呈現出局部性規律,即在一段時間內,整個程序的執行僅限於程序中的某一部分

存儲系統中Cache-主存層次和主存-輔存層次均采用了程序訪問的局部性原理

算編碼時,ALU觀察是信號還是功能,功能則+1<=2^n,信號直接數,寄存器有輸入則各算+1<=2^n。移位器編碼按字段直接編碼功能+1<=2^n

硬布線控制器

  • 硬布線控制器是將控制部件做成產生專門固定時序控制信號的邏輯電路,產生各種控制信號,因而又稱為組合邏輯控制器
  • 這種邏輯電路以使用最少元件和取得最高操作速度為設計目標,因為該邏輯電路由門電路和觸發器構成的復雜樹型網絡,所以稱為硬布線控制器

微程序控制器

  • 微程序控制器由指令寄存器IR,程序計數器PC,程序狀態字寄存器PSW,時序系統,控制存儲器CM,微指令寄存器以及微地址形成電路
  • 用存儲邏輯實現,微操作信號代碼化,然后每條機器指令轉成一段微程序存入專門的存儲器

 

 

 可以提高乘法運算速度的方法是,先行進位加法陣列乘法

 存儲周期,存儲器連續啟動兩次讀操作所需間隔的最短時間

 Cache是介於主存和CPU之間的高速緩沖存儲器,它根本不屬於內存,所以Cache不計算進存儲系統的容量

 寄存器間接尋址,要尋找的操作數位於內存,通用寄存器中保存的是操作數的地址

 浮點運算中,結果向右規格化的規則是,尾數向右移一位,階碼加1

 Cache-主存系統中,主存任意一塊映射到Cache特定塊,稱為直接映像

 Cache-主存系統中,主存任意一塊映射到Cache任意塊,稱為相聯映像

 微程序控制器的核心部件是存儲微程序的 控制存儲器;通常由 只讀存儲器

 CPU中主要的寄存器以及主要作用

  • 指令寄存器IR,存放當前正在執行的指令。指令從主存取出后,經過MDR傳送到IR中
  • 程序計數器PC,保證程序按固定序列正確運行,提供將要執行指令的指令地址
  • 累加寄存器AC,暫存操作數據和操作結果
  • 程序狀態寄存器PSW,存放程序的工作狀態和指令執行的結果特征
  • 地址寄存器MAR,存放所要訪問的主存單元地址,接受PC的指令地址,接受來自地址形成部件的操作數地址
  • 數據緩沖寄存器MDR,存放向主存寫入的信息或從主存讀出信息

DMA方式的特點,說明DMA方式能否代替程序中斷

  • 響應隨機請求的方式,實現主存與IO設備間的快速數據傳送
  • 采用DMA方式,僅需占用系統總線,不切換程序,不存在保護斷點,保護現場,恢復現場,恢復斷點等操作
  • DMA傳送的插入不影響CPU程序執行狀態,除了訪問主存的沖突外,CPU可以繼續執行自己的程序,提高CPU利用率
  • DMA方式只能處理簡單的數據傳送,難以識別與處理復雜的情況
  • DMA不能處理復雜事態,DMA不能代替程序中斷

 組合邏輯控制器比微程序控制器執行速度

 動態流水線,允許同一時間內不同功能段組合具有多種功能的流水子線

 非線性流水線,有反饋回路,功能段可通過反饋回路多次使用

 集中式的總線仲裁方式中,對總線請求響應速度最快的是獨立請求方式,鏈式查詢對電路故障最敏感

 碼距d和要求校驗碼檢錯個數e的關系,d >= e + 1

 十六進制形式表示的IEEE754標准32位單精度浮點數的規格化最大負數的機器數為

 補充:對於32位規格化浮點數,真正的指數值e為-126~+127

 Cache三種映射方式

組相聯的地址結構

 

  

 主存的地址結構,每個cache塊大小為8B,塊內偏移3位;256/8 = 32塊,32/4 = 8組,組號3位,64KB= 2^16

 去掉組號和塊內偏移的6位,剩下10位即內存對應2^10個cache(主存的組內塊號)

 Cache的地址結構,去掉區號即可

 

 

 直接映像方式,0E6AH = 0000 1110 0110 1010,區號 00001110,塊號 01101010,塊內偏移 010,Cache地址編號,01101010 = 6AH

 Cache命中率,4000 / (4000 + 300) ≈ 0.93

一個四路組相聯(Cache每組內有4個塊)的Cache共有64塊,主存有8192塊,每塊32個字,則主存地址中字塊標記,組地址,塊內地址為多少?

每塊32個字,塊內偏移5位,64/4 = 16組,組號4位,8192 / 64 = 128,主存容量64KB = 2^16,占16位,剩余7位做主存標識

4路組相聯,一組有4個塊,一塊大小4 * 4B = 16B,8KB / 4*16B = 2^7 = 128,Cache共分為8組

組號占7位,塊內偏移占4位,主存標識,16MB = 2^24,占24位,剩余13位做主存標識

  按照流水的級別,可以把流水線划分為

  • 部件級流水線,運算器流水線
  • 處理機級流水線,指令流水線
  • 處理機間流水線,宏流水線

某計算機字長32位,其存儲容量為256MB,若按單字節編址,它的尋址范圍是

設機器數字長位16位(含1位符號位),若用補碼表示定點小數,則最大正數為 1 - 2-15

循環冗余碼

 

 浮點數運算

 海明碼

 

某計算機指令字長為16位,指令有雙操作數、單操作數和無操作數3種格式,每個操作數字段均有6位二進制表示,該指令系統共有m條(m<16)雙操作數指令,並存在無操作數指令。若采用擴展操作碼技術,那么最多還可設計出單操作數指令的條數是______。
A.26
B.(24-m)×26-1
C.(24-m)×26
D.(24-m)×(26-1)

雙操作數指令操作碼字段占4位,單操作數指令操作碼字段占10位,無操作數指令操作碼字段占16位。現指令系統中有m條雙操作數指令,則給單操作數和無操作數指令留下了(24-m)個擴展窗口。因為存在着無操作數指令,所以單操作數指令必須要給無操作數指令留下一個擴展窗口,最終最多可以設計出單操作數指令的數目為(24-m)×26-1。

多重中斷的中斷服務程序包括

  • 保護現場
  • 開中斷
  • 設備服務

控制器的三種控制方式

同步控制方式,任何指令或各個微操作的執行均由具有統一基准時標的時序信號控制

異步控制方式,區分不同指令對應的微操作序列的長短,不再有統一的周期、節拍,各個操作之間采用應答方式銜接,前一操作完成后給出回答信號,啟動下一操作

聯合控制方式,同步控制和異步控制相結合,功能部件內部進行同步,功能部件之間采用異步

相對尋址

相對尋址,PC當前內容一般為現行指令的下一單元的地址,取指令之后PC的內容2002H,執行指令之后的內容,2002+40=2042H

相對尋址的偏移量可正可負,一般用補碼表示,例如,偏移量為8,則尋址范圍是 (PC)- 128 到 (PC) + 127

通用寄存器的位數取決於機器的存儲字長

 動態RAM每ms刷新100次,每次刷新需100ns,一個存儲周期需要200ns,異步刷新方式下,刷新占存儲器總操作時間百分比是

尋址方式按操作數物理位置不同,多使用R-R型號和R-S型,前者比后者運行速度快

R-R型,寄存器-寄存器,比R-S型,寄存器-存儲器運行速度快

 某一RAM芯片,其容量為1024*8位,不采用地址復用技術,除電源和接地外,連同片選和讀/寫信號該芯片引腳最小數目

 1024=2^10,10根地址線,8位,8根數據線,+ 片選1根和讀/寫1根,共20根

 地址復用,對半開,行列選通

 

 

 存儲器的四種刷新方式

 集中刷新,單獨拿出2ms做刷新

 分散刷新,刷新周期=讀寫周期

 異步刷新,單元刷新時間間隔/行數,然后取存儲周期的整數倍

 透明刷新,利用取指周期的譯碼時間,存儲器空閑,進行刷新操作

 CPU通用寄存器的位數不取決於通用寄存器

 中斷向量地址:存儲中斷向量的存儲單元地址,中斷服務例行程序入口地址的指示器

 中斷向量:中斷服務程序的入口地址

 在某些計算機中,中斷向量的位置存放一條跳轉到中斷服務程序入口地址的跳轉指令

 產生后繼微指令地址的方法:下地址,增量計數法,網絡測試

 整數補碼減法 [A]補 - [B]補 = [A-B]補 = [A]補 + [-B]補

動態存儲器的刷新通常按進行

組合邏輯控制器,優點速度快,缺點是設計與實現比較復雜,不易於修改和擴充

微程序控制器,優點設計規整,易於修改和擴充,缺點是速度較慢

 IEEE754,單精度浮點數的取值范圍

 馮諾伊曼思想

計算機由輸入設備、輸出設備、運算器、存儲器和控制器五大部件組成

采用二進制形式表示數據和指令

采用存儲程序方式

支持實現程序浮動的尋址方式稱為 相對尋址

存放微程序的控制器通常是 ROM

10000000看作原碼時真值為 0或-0,看作補碼時對應的真值為 -128

變址寄存器尋址方式中,若變址寄存器的內容是4E3CH,給出的偏移量是63H,它對應的有效地址,4E9FH

原碼中0有兩種不同的表示方法,+0:00000000,-0:10000000

機器字長一定的情況下,單精度浮點數的尾數越多表示的數越精確,階碼決定數的范圍

DRAM存儲器的集中式刷新、分散式刷新和異步式刷新三種刷新方法,最合理的異步式刷新

在浮點數的加減法運算中,當所求和/差尾數發生溢出時,計算機會置溢出標志但不會做相應的處理

按存取方式對存儲器分類,廣泛使用的硬盤屬於隨機存取存儲器

對於同步控制方式的控制器來說,任何指令的運行或指令中各個微操作的執行均由確定的具有統一基准時標的時序信號控制

硬盤的存儲密度可以用位密度和道密度衡量,因為磁盤每條磁道長度不同,所以位密度也不同

 指令流程                             控制信號序列

 (PC)->MAR,Read             PC->B,Gon,F->MAR,Read,F->Y

 (PC) + 1 -> PC                    INC,F->PC

 M->MDR->IR                       MDR->B,Gon,F->IR

 (R1)->MAR,Read              R1->B,Gon,F->MAR,Read

 M->MDR->Y                         MDR->B,Gon,F->Y

 (Y) + (R0)->R0                     R0->B,ADD,F->R0

 機器字長32位,其中1位符號位,31位表示尾數,用定點小數,最大正小數是 1 - 2^-31

 每一條機器指令由一段用微指令編程的微程序來解釋執行

 某DRAM芯片,其存儲容量位512K*8位,該芯片的地址線和數據線數目是 512K=2^19,所以19根地址線,8位就是8根數據線

 單地址指令中為了完成兩個數的算術運算,除地址碼指明的一個操作數外,另一個數常需采用隱含尋址方式

 程序控制類指令的功能是改變程序執行的順序

 CPU和通用寄存器的長度是由機器字長決定

機器字長:CPU一次能處理數據的位數,通常與CPU的寄存器位數有關。

存儲字長:存儲器中一個存儲單元(存儲地址)所存儲的二進制代碼的位數,即存儲器中的MDR的位數。

指令字長:計算機指令字的位數。

數據字長:計算機數據存儲所占用的位數。

 設某機字長為32位,CPU有32個32位通用寄存器,有8種尋址方式,包括直接尋址、間接尋址、立即尋址、變址尋址等,采用R-S型單字長指令格式,共有120條指令

 試問該機直接尋址的最大存儲空間為多少?

 在32位地址中,由於指令條數為120條,所以用於指令操作碼至少為7位,由於具有32個通用寄存器,需要用5位對寄存器編號

 指令為R-S型指令,第一操作數只能為寄存器直接尋址,無需表明尋址方式,而第二操作數有8種尋址方式,需要用3位表示具體的尋址方式

 所以,該機直接尋址的最大存儲空間為2^(32-7-5-3)=2^17=128K

 若用64K*4位的DRAM芯片組成該存儲器,則需多少芯片?2^22*16/2^16*4 = 256

 在該存儲器的22位地址中,16位用於片內尋址,6位用於選片尋址

 若采用一級間接尋址,則可尋址的最大存儲空間為多少?如果采用變址尋址呢?

 如果采用一級間接尋址,則可尋址的最大存儲空間為2^32=4G,用變址尋址也一樣

 若立即數為帶符號的補碼整數,試寫出立即數范圍,立即數為17位的補碼,-2^16 ~ 2^16 - 1(符號占一位)

 指令流程                             控制信號序列

 (PC)->MAR,Read             PC->PCout->1BUS->MARin,F->MAR,MAR->ABUS,Read,PC->Y

 (PC) + 1 -> PC                    (Y) + 1 -> Zin->Z,(Z)->Zout->1BUS->PC

 M->MDR->IR                       MDR->MDRout->1BUS->IRin->IR

 (R1)->MAR,Read              R1->B,Gon,F->MAR,Read

 M->MDR->Y                         MDR->B,Gon,F->Y

 (Y) + (R0)->Z                       R0->B,ADD,F->R0

 (Z)->R0                     

 在浮點數的表示中,用移碼表示階碼的好處是能提高運算精度

微程序通常存放在CPU的控制寄存器中

在浮點運算時,當尾數絕對值大於1時,右規

為了減少指令中的地址個數,有效的辦法是采用 隱地址

同步控制由統一時序信號控制的方式

相對尋址中,若偏移量為8,則尋址范圍是 -128~(PC) + 127

馮諾伊曼設計原則,硬件是由 輸入設備、輸出設備、存儲器、運算器、控制器

 從縮短程序長度、編程方便、提高操作並行性方面看,三地址指令最優

 從縮短指令長度、減少訪存次數、簡化硬件設計等方面看,一地址指令較好

 小微型計算機指令字長較短,廣泛用二地址指令和一地址指令

 三地址和多地址指令,功能強,便於編程,多用於指令字長較大的大、中型機使用

 定長編碼,所有指令操作碼長度一致,集中位於指令字的固定字段,指令譯碼簡單,有利於簡化硬件設計

 變長編碼,有效壓縮指令操作碼的平均長度,便於用較短指令字長表示更多的操作類型,尋址更大的存儲空間,指令譯碼與分析難度增加,使硬件設計復雜化

 某計算機指令字長為16位,其中操作碼OP,第一地址A1,第二地址A2,第三地址A3各占4位,采用了擴展操作碼技術,最多可設計出 16 條指令

 操作碼占4位,所以 2^4 - 1 = 15,最后一條指令的形式是 1110 A1A2A3

 無論X是整數還是負數,對其補碼進行求補運算,其結果均為 -X 的補碼

 分段編碼方式中,互斥指令划分在同一字段,相容指令划分在不同字段

 對二進制串取反,可以用1進行異或

 地址總線A15~A0,數據總線D7~D0, 存儲器地址空間為 4000H~6FFFFH,按字節編址,其中4000H~5FFFH為ROM區,選用EPROM芯片(4K * 8bit)

 6000H ~ 6FFFH,為RAM區,選用SRAM(2K * 4bit)
 4000H~5FFFH,為ROM區,為2^13=8KB,8KB / 4K * 8 b = 2,所以需要2片EPROM

 6000H~6FFFH,為RAM區,為2^12 = 4KB,4KB / 2K * 4b = 4,所以需要4片SRAM

 EPROM,應該連入A12 ~ A0,進行片內尋址,SRAM應該連入A11 ~ A0

 EPROM,連入A15~A14片選,選片信號,EPROM1為01選中,EPROM2為11選中

 1片SRAM4位,數據總線8根,有8位,所以需要進行位擴展,4片SRAM芯片位擴展后分為2組,選片信號位 第一組:A15~A12 為1100選中,A15~A11為1101選中

 寄存器直接尋址,F340,存儲器直接尋址,1004H對應1002H,存儲器間接尋址1004H對應1002H對應1200H,寄存器間接尋址,1002H對應1200H

 指令流程

 (PC)->MAR,Read     

 (PC) + 1 -> PC                 

 M->MBR->IR                  

 (R1)->MAR,Read       

 M->MBR->C                     

 (R2)->MAR,Read

 M->MBR->D

 (C) + (D)->MBR,write

 (R2)->C,C+1->R2

 CPU對不可屏蔽中斷必須響應

 每一條機器指令由一段微指令編成的微程序來解釋執行

 某一RAM芯片,其容量為1024*8位,若不采用地址復位技術,除電源端和接地端之外,連同片選和讀/寫信號該芯片引腳的最小數目為

 1024=2^10,地址線10根,8位,數據線8根,片選1根,讀/寫1根,一共20根

 CPU從主存取出一條指令並執行該指令的所有時間稱為指令周期

 CPU主要包括 控制器、運算器、cache

 每道存儲容量 = 內層位密度 * 內層周長 = 52400*Π2.36 = 48563B

 盤組總存儲容量 = 每盤記錄面 * 每面容量 = 10*2*0.075 = 1.5GB

 每面容量 = 道數 * 每道容量 = 1650 * 48563 = 0.075GB

 道數 = 道密度 * (外直徑 - 內直徑)/ 2 = 1250 * (5-2.36)/ 2 = 1650 道

 數據傳輸率 = 一道容量 * 一秒的轉數 = 48563*(2400/60) = 1.85MB/S

 磁道數 1650,需要11位,盤面數 22,需要5位,扇區數=48563B/2KB = 24,需要5位,一共需要11+5+5 = 21位

 應該記錄在同一柱面

 指令流程

 (PC)->MAR,Read     

 (PC) + 1 -> PC

 M->MDR->IR

 (R1)->MAR,Read

 M->MDR->Y

 (Y) -> A

 (R0) -> B

 (A) + (B) -> Z

 (Z)->R0

 變址尋址,變址寄存器,23A0H,23A0H + 3FH = 23DFH

 相對尋址,PC當前內容,2B00H,2B00H + 3FH = 2B3FH

 變址尋址用於取數指令,23DFH取的是2800H,相對尋址轉移指令,條件轉移指令為  JNZ 40H,則相對尋址天轉到 PC + 40H = 2B40H

 若采用直接尋址,存儲器取出的是地址 003FH對應的2300H

0000H~1FFFH,2^13 = 8KB,8K * 8/ 8K * 8 = 1,ROM芯片需要1片

RAM區域,16K * 8 / 8K * 4 = 4,RAM芯片需要4片

畫圖題的端口字母意義

  • CS,片選
  • 控制讀寫 #WE /#OE#WE
  • 單信號控制讀寫 #WE(低電平寫,高電平讀)
  • 雙信號控制讀寫 #OE(允許讀) #WE(允許寫)
  • 訪存控制信號MREQ,直接連接到譯碼器的其中一個低電平選通端

 

 (PC)->MAR, Read

 M->MDR->IR

 (PC) + 1 -> PC

 (R1)->MAR,Read,

 M->MDR->A

 (R2)->B 

 (A) + (B)->MDR, write

更新磁盤上全部數據的重要題目!

 

 2^24 * 16 = 2^28 bit = 2^25B = 32MB

 32MB / 64K * 4 bit = 2^28 / 2^18 = 2^10 = 1024 片

 16位用來片內尋址,剩余8位用來選片尋址

 補碼的判斷是否是規格化的方法,數符和尾數最高位是否相異

 寄存器間接尋址,要尋找的操作數在主存

 中斷屏蔽的作用,是暫時禁止某些中斷源向CPU提出中斷請求

 MIPS,million Instructions per second,每秒執行幾百萬

 MFLOPS,million Float-point operations per second,每秒執行幾百萬浮點

 主機字長32位,變址尋址,現變址寄存器Rx的值 12340000H,16位形式地址的值為 ABE9H,采用補碼表示,操作數有效地址為  1234ABE9H

 計算機使用總線結構的主要優點足便於實現積木化,其缺點是( )。

A.地址信息、數據信息和控制信息不能同時出現
B.地址信息與數據信息不能同時出現
C.兩種信息源的代碼在總線中不能同時傳送
D.前面都不正確

 中斷響應周期中,CPU完成的操作順序是:關中斷,保存斷點地址,和程序狀態字,轉入中斷服務器程序入口

 DMA方式可以用於控制主機和高速外設之間的信息傳送,但不能代替中斷傳送方式

 硬件和軟件邏輯上等價是指,原理上,軟件的功能可以由硬件或固件實現,硬件的功能可以用軟件模擬完成,但是兩者性價比和難易度不同

 

 OP一共5位,2^5 = 32 種指令

  • 001,直接尋址,EA = A
  • 010,間接尋址,EA = (A)
  • 011,變址尋址,EA = (Rx) + A
  • 100,相對尋址,EA = (PC) + A

機器字長16位,存儲器按字編址,8位的形式地址,直接尋址的可尋址范圍是 2^8 個字

間接尋址的范圍是 2^8 * 2^8 = 2^16 個字

相對尋址是PC附近的(+-)2^8個地址,故尋址范圍是 2^8 個字

變址尋址原理類似於相對尋址,變址尋址的范圍由Rx的位數決定,這個位數是由用戶設定的

  • 5位OP
  • 源操作數分為寄存器和尋址方式,分別占4位和3位
  • 目的操作數分為尋址方式和地址,尋址方式有3位,地址只剩下1位

一共16根地址線,8根數據線,存儲空間 2^16 * 8 bit

每個芯片13根地址線,8根數據線,2^13 * 8 bit = 8KB,一共4個芯片,所以一共32KB

RAM的存儲容量,8KB,ROM的存儲容量,8KB

 

 (PC)->MAR,Read

 (PC)->Y,(Y)+1->PC

 (M)->MDR->IR

 (SP)->Y,(Y) - 1 -> SP,(Y) - 1 -> MAR

 (PC)->MDR,Write

 (Y) + (IR) -> PC  (IR里面的內容就是D)

 PC+1后送入堆棧,棧頂為2FFFH

 JSR需訪問存儲器 2 次

 互斥信號放一組,相容信號分開來

  • ALU,有6個功能,所以需要3位
  • B總線,IR->B,PC->B,MDR->B,R0~R3->B,SP->B,TEMP->B,有9個功能,需要4位
  • F到11個寄存器的輸入,4位

一共11位

 初始化階段

  •  CSR->PM,控制字送DMA控制器
  •  200000H->MAR->MBR,預置數據在緩沖區首地址
  •  置DAR外設的地址
  •  2KB->WC,傳送數據位2KB

 傳送階段

 外設准備好一次數據傳送后,DMA接口向主機發送DMA請求,CPU執行完成當前存取周期后,響應DMA請求,將總線權限讓給DMA控制器,DMA控制器控制源和目的端口,傳送數據

 外設向CPU發出DMA請求時,CPU將在當前總線周期結束予以響應

 CPU通常在當前機器周期結束時響應DMA提出的總線請求

 連接在字節多路通道上的多個設備可以同時進行數據傳輸操作

 存儲器系統采用多級層次結構的目的是 解決存儲器容量、速度與價格之間的矛盾

 采用微程序控制的控制器,微程序存放在控制存儲器

 CPU進入中斷響應周期后第一步要完成的操作是關中斷

 在集中式串行仲裁和集中式並行仲裁兩種總線仲裁方式中,對電路故障最敏感的是集中式串行仲裁方式

 光調制器件

 

 電光器件

 CRT顯示器是一種使用陰極射線管(CathodeRayTube)的顯示器

 液晶顯示器是一種借助於薄膜晶體管(TFT)驅動的有源矩陣液晶顯示器,它主要是以電流刺激液晶分子產生點、線、面配合背部燈管構成畫面。IPS、TFT、SLCD都屬於LCD的子類。

 布斯除法

 寄存器A存放被除數,B存放除數,C初始值為0;除法計算結束后,A存放余數,B存放除數,C存放商

 Af 被除數的符號,Bf 除數的符號

 

 OP一共4位,2^4 = 16條指令   Rs一共3位,2^3 = 8 個通用寄存器,MDR和MAR至少各需要16位,因為字長16位

 0001 001 001 010 010  =  1252H

 R2自增,5678H更新為5679H;內存 5679H,5678H單元兩個字節單元的內容變為加法指令計算得到的值 5678H + 1234H = 68ACH

 PC提供指令在內存中的地址,並保存下一條將要執行的指令地址

 主機與設備傳送數據時,采用中斷方式,主機與設備是串行工作的

 微程序控制器所產生的所有控制信號稱為微指令

 DMA傳送方式是實現內存與外設之間信息高速傳送的一種方式

 在CPU中跟蹤指令后繼地址的寄存器是 程序計數器                   

 動態RAM依靠電容電荷存儲信息            

 指令系統中采用不同尋址方式的目的主要是 縮短指令長度,擴大尋址空間,提高編程靈活性

 

  地址碼占6位,則有兩個地址碼,一個OP碼占4位    OP(4位)     A1(6位)     A2(6位)

  15條二地址指令,則留下一位給1地址指令,2^6 = 64,因為沒有零地址,所以不用留下一位給零地址,最多可以有64條一地址指令

  半導體存儲器采用隨機存取方式

  -0的8位二進制補碼 00000000

 

 300FH,相對尋址,PC + 2 = 3012H,3012H - 3004H = 13D(十進制), -13D = 1000 1101,取補碼為 1111 0011 = F3H

 程序控制類指令主要包括轉移指令,循環控制指令,子程序調用與返回指令,中斷指令

 半導體存儲器芯片內部組織一般有字片式(一維譯碼)和位片式(二維譯碼)結構,其中位片式結構可以減少譯碼驅動電路的數量

  • ROM區,4KB,EPROM 4K*4bit/片,4KB / 4K * 4 bit = 2片
  • RAM區5KB,SRAM 4K * 8bit/片 和 1K * 4bit/片,RAM區分為4KB和1KB,4KB /  4K * 8bit = 1片,1KB / 1K * 4bit = 2片
  • EPROM,4KB = 2^12B,EPROM = 0000H ~ 0FFFH,SRAM 4KB = 2^12B,1000H ~ 1FFFH,SRAM 1KB = 2^10,2000H ~ 23FF
  • 地址線已經占用了14位,剩余2位做片選,EPROM 00 SRAM1 01 SRAM2 10

(PC)->MAR,Read

(PC)->C,(C) + 1->PC

(M)->MBR->IR

(R1)->MAR,Read

(M)->MBR->C

(R2) ->D,(D) + 1->R2

(R2)->MAR,Read

(M)->MBR->D              
(C) + (D) -> MBR,Write

決定計算機運算精度的主要技術指標是計算機的字長                                                                                                                     

馮諾伊曼計算機中,指令和數據均后二進制形式存放在存儲器中,CPU區分他們的依據是指令周期的不同階段

采用變形補碼進行加減運算時,運算結果中兩個符號位相異,則表示運算發生了溢出

EPROM,DRAM,SRAM和EEPROM,需要定時刷新的存儲芯片是 DRAM

對於IEEE754標准,32位單精度浮點數N,若E=255,且M=0,則N= (-1)^s * ∞

采用CRC校驗時,若CRC校驗碼中發生錯誤,在與生成多項式G(x)作模2除時了,會使余數 不為0

在進行DMA傳送之前,CPU必須先根據傳送要求對DMA進行初始化操作

在同一時間內只能以一種方式工作的流水線稱為 靜態流水線

零地址算數運算指令中,采用堆棧尋址方式進行操作數尋址(指令所需操作數約定隱含在堆棧中,結果也寫回堆棧)

0具有唯一表示的方法,移碼和補碼

大端模式,是指數據的高字節保存在內存的低地址

小端模式,是指數據的高字節保存在內存的高地址

 ASCII 碼使用指定的 7 位或 8 位二進制數組合來表示 128 或 256 種可能的字符.標准 ASCII 碼也叫基礎ASCII碼,使用 7 位二進制數來表示所有的大寫和小寫字母,數字 0 到 9、標點符號,以及在美式英語中使用的特殊控制字符

 

 一個字符,一個字節,4在從低到高的第2個字符,所以在第1位,內存單元的地址是 1001H

 寄存器傳送指令完成的是寄存器之間的數據傳送

 CPU執行條件轉移指令時,通常根據PSR的內容來判斷是否實現轉移

  • 硬件中斷:外設發出的中斷請求,如:鍵盤中斷、打印機中斷、定時器中斷等。外部中斷是可以屏蔽的中斷,也就是說,利用中斷控制器可以屏蔽這些外部設備的中斷請求。
  • 硬件出錯(如突然掉電、奇偶校驗錯等)或運算出錯(除數為零、運算溢出、單步中斷等)所引起的中斷。內部中斷是不可屏蔽的中斷。
  • 軟件中斷其實並不是真正的中斷,它們只是可被調用執行的一般程序軟件中斷:其實並不是真正的中斷,它們只是可被調用執行的一般程序。
  • 例如:ROM BIOS中的各種外部設備管理中斷服務程序(鍵盤管理中斷、顯示器管理中斷、打印機管理 中斷等,)以及DOS的系統功能調用(INT 21H)等都是軟件中斷

 

  • 16位的數據緩沖器,采用中斷方式進行IO操作,2B進行一次中斷,中斷請求的時間間隔為:2B / 20kBps = 1/10k = 1 / 10000 s = 100us
  •  中斷響應加中斷服務的執行時間為:500 / 500M s = 1us
  •  中斷響應時間相對於中斷服務程序的執行時間很短,整個中斷響應加中斷服務的時間約為 1us,遠遠小於中斷請求的時間間隔,可以用中斷方式進行該外設的輸入輸出
  •  最大數據傳輸率改為20MBps,2B / 20MBps = 1us,整個中斷響應加中斷服務的時間約為1us,一次中斷處理未完,新的中斷請求就來到,不可以用中斷方式控制該設備進行IO
  •  設備的最大數據傳輸率為20Mps,最好才哦那個DMA方式及逆行輸入輸出

 

 至少能容納8*2^8 = 2^11 = 2048條微指令

 下地址字段至少需要11位

 機器指令與所對應的微程序初始地址之間的對應關系,可以采用一級功能轉移的方法,將機器指令的8位操作碼作為11位微地址中的高8位,微地址中的低3位用事先規定的固定值

 

 轉子指令 JSR D的指令流程和控制信號序列

 (PC)->MAR,Read                                       PC->B,Gon,F->MAR,Read

 (PC)->Y,(Y)+1->PC                                    PC->B,Gon,F->Y,A+1,F->PC

 MDR->IR                                                       MDR->B,Gon,F->IR

 (SP)->Y                                                        SP->B,Gon,F->Y

 (Y) - 1 -> SP,(Y) - 1 -> MAR                       A-1,F->SP,F->MAR

 (PC)->MDR,Write                                       PC->B,Gon,F->MDR,F->Y,Write

 (Y) + (IR) -> PC  (IR里面的內容就是D)          IR->B,A+B,F->PC

 設轉子指令為JSR 200H,指令所在內存單元地址為 2012H,內存按字編址,執行轉子指令后PC的值是 2013H + 200H = 2213H

 

 現有指令SUB R2,(R3)+,寫出機器指令碼,0010 000 010 010 011

 設指令SUB,R2,(R3)+,所在的內存單元的地址是 2000H,寄存器R2的內容為ABCDH,R3的內容為1000H,地址1000H中的內容為1234H,地址ABCDH中的內容為5678H,則指令 SUB R2,(R3)+執行后,哪些寄存器和存儲單元內容會變

 PC取值+1,2001H,R3自增,1001H,中1000H對應的內容是1234H,1000H對應 ????

 設中斷源編號為N,則中斷源編號與中斷向量地址之間的關系:(N - 1)*2 + 1000H

 中斷源P3對應的中斷服務程序入口地址:30A0H

 

數據線 D0 ~ D7,地址線 A0 ~ A13,ROM和RAM的存儲容量都是 2^14 = 16KB

該機當前的ROM和RAM區域的存儲容量,ROM 16KB,RAM 64KB

地址1C000H = 0001 1100 0000 0000 0000,片選,111H = 7D,所以是3-8譯碼器最后一位,Y7,即RAM4

128K,ROM32K,RAM96K,一片ROM 32K * 4 bit,需要2片ROM進行位擴展;一片RAM 32K * 8 bit,需要3片RAM進行字擴展

 判斷原碼是否為規格化數的依據,尾數最高位為1,其余位相同

 規格化數,絕對值在 1/R ~ 1

 絕對值大於1/4,小於1

 定點小數補碼除法運算過程中,要求|被除數| < |除數|

 組成指令流水線的各功能段執行時間最好是盡量相等

 采用微程序控制方式時,微指令中的微地址是指后繼微指令地址

 計算機使用總線結構主要優點是便於實現模塊化,同時減少了信息傳輸線的數目

 校驗碼的檢錯,糾錯能力取決於 最小碼間距離

  采用微程序控制方式的控制器中,每一條機器指令由一段用微指令組成的一段微程序解釋執行

 IEEE754單精度浮點數,階碼為0,尾數不為0,則數的表達式是:N = (-1)^s * 2^-126 *  0.M

 

 地址碼是補碼,800H,負數,那么 2000H + F800H = 0010 0000 0000 0000 - 0000 1000 0000 0000 = 0001 1000 0000 0000 = 1800H,1800H對應的是4000H

 F800H原 = 1111 1000 0000 0000 - 1 = 1111 0111 1111 1111 然后取反 = 1000 1000 0000 0000

 

 直接映象方式,矩陣首地址 1024,每個元素32位,占4個字節,元素A[1][31]所在單元主存地址為 1024 + (256 + 31)*4 = 2172B,對應的主存地址為 2172 / 64 = 33,所以主存塊號為33

 一個Cache可以放 512/64 = 8塊內存,33 % 8 = 1

 Cache命中率:2000 / 2050 ≈ 0.976

 主存-Cache系統的平均訪問時間:Ta = 0.976*50ns + (1 - 0.976)*200 = 53.6ns

 256MB / 64M * 8 bit = 256/64 = 4片,8位,需要8根數據線,64M=2^26,需要26根地址線

 

 (PC)->MAR,Read                        PC->B,F=B,F->MAR,read,F->Y

 (PC) + 1 -> PC                               F = A + 1,F->PC

 M->MDR->IR                                  MDR->B,F=B,F->IR

 (R1)->MAR,Read                        R1->B,F=B,F->MAR,F->Y,Read

 (R1) + 1 -> R1                               F = A + 1,F->R1

 M->MDR->Y                                   MDR->B,F=B,F->Y

 (Y) + (R0) -> MDR,Write             R0->B,F = A+B,F->MDR,Write

 執行該指令,訪存3次

 PC: 2FFFH,(R0):A000H,(R1):1001H,(1000H):(A000H):2000H,(1000H):5000H,因為A+B溢出,所以剩下一個5

 操作碼一共占4位,最多可以有16位,16-12 = 4,則單操作數指令最多可以有 4 * 2^6 = 256條,80/256 = 0,零操作數指令要占用一條單操作數指令,所以最多可以有255條零操作數指令

 

 微操作編碼中10個微命令采用直接控制方式編碼,占10位;30個微命令,4個相斥位,各占一個字段,分別占 3,5,4,2,一共14位;判斷條件有4個,占4位

 字長是40位,40 - 24 - 4 = 12位,剩余12位給下地址字段長度

 下地址字段長度位12位,可尋址的存儲空間 2^12 = 4096bit,微指令字長40位,所以控制存儲器的容量可以達到:4096 * 40bit

 

 數地址線的條數即可,線越少,優先級越高,3 > 4 > 6 > 5 > 2 > 1

 

 中斷服務程序執行時間 500/500MHz = 1us

 數據緩沖字長8位,1B,外設A的中斷請求時間間隔是:1B / 20MBps = 0.05 us,外設A的中斷請求時間間隔是:1B / 20kBps = 50us

 外設A的請求間隔小於中斷程序執行時間,所以A不能用中斷方式進行IO操作;而外設B請求間隔大於中斷服務程序執行時間,所以B可以用中斷方式進行IO操作

 外設A最好采用DMA或者通道方式進行IO操作

 IEEE754標准中並不是所有浮點數都使用隱藏位技術,只有單精度和雙精度使用隱藏位技術

 指令系統中,程序控制類指令的功能是改變程序執行順序

 在指令執行過程中,不可以修改指令寄存器IR的內容

 

 Cache有256塊,大小1KB,所以一個數據Cache 256KB

 主存地址空間1GB=2^30B,256KB = 2^18B,1GB / 256KB = 2^12 標識cache需要12位,加上1位有效位,一共13位,數據cache有256個塊,256 * 13 = 416B

 Cache總量 = 256KB + 416B = 256.40625KB

 4路組相聯映像方式,Cache一共有 256 / 4 = 64組,組號 6 位,塊內偏移 10位, 1GB = 2^30,去掉組號和塊內偏移,剩下14位

 主存標識有14位,這里的2是4路占有的位數,即編號 0 1 2 3

 123ABCDFH = 0001 0010 0011 1010 1011 1100 1101 1111,偏移  00 1101 1111 ,組號 1011 11,主存標識  0001 0010 0011 1010

 偏移是不變的, 組號也是不變的,但是組內號是可以改變的,可能放到    1011 11  **00 1101 1111 補齊,0010 1111 **00 1101 1111

 即 2F*DF,*可以取0~3,所以可能放到 2F0DF 2F1DF 2F2DF 2F3DF

 從計算機系統發展過程看,早期的計算機組織結構,是以運算器為中心的,近代的計算機組織結構是以存儲器為中心的

 主機與IO設備進行數據傳輸時,CPU效率最低的是 程序查詢方式

 雙端口存儲器之所以能高速進行讀寫,是因為采用 兩套相互獨立的讀寫電路 

 便於實現數組、向量、字符串處理的尋址方式是 變址尋址

 CRC碼生成多項式的條件

 

 PCI總線

  •  PCI總線是一個與處理器無關的高速外圍設備
  •  PCI總線的基本傳輸機制是促發式傳送
  •  PCI設備有主設備和從設備

 DMA

  • 在DMA的數據傳輸階段無需CPU介入,完全由DMAC控制數據傳輸
  • DMA控制器和CPU都可以作為總線的主設備
  • DMA方式下要用到中斷處理技術

 USB3.0總線采用串行總線模式傳輸數據

 USB全稱為 Universal Serial Bus, 即通用串行總線,所有的USB都采用串行總線模式傳送數據

 IO緩沖buffer主要是為了增加數據的讀寫效率

 指令執行過程中,不允許修改指令寄存器IR中的內容

 通道有自己的通道程序,所以通道適合慢速外設的數據傳輸

 程序中斷會影響處理器流水線的執行,產生全局相關

 

 

 

 

 

 主存128KW,

 

 回寫法的原理:當CPU對Cache寫命中時,只修改Cache內容而不修改主存,只有當此行被換出Cache時才會寫回主存

 優點:顯著減少訪存次數,提高CPU利用率

 缺點:Cache/主存的不一致性

 4路組相聯,32KW / 64W = 2^9塊,2^9 / 4 = 2^7 組,即 128組,組號占7位,一塊大小64W,64W = 2^6 W,塊內偏移 占6位,128KW / 32KW = 4 = 2^2,占2位,組內塊號2位,主存標識占4位

 主存地址:4位主存標識,7位組號,6位塊內偏移   Cache地址:7位組號,2位組內塊號,6位塊內偏移

 10658H = 0001 0000 0110 0101 1000 ,塊內偏移  01 1000,塊號 0 0110 01,中間有2位組內塊號,0 0110 01 ** 01 1000,整理格式,0001 1001 **01 1000= 19*8,可以取 1918,1958,1998,19D8

 128KW / 32KW = 4塊Cache,  若考慮裝入位和數據修改位,512 * ()????????

 只有等對應的塊被換出才寫回

 總線仲裁方法按照仲裁控制機構的設置方式可以分為集中仲裁分布式仲裁

 便於實現浮動程序設計的尋址方式是相對尋址

 鍵盤可分為功能鍵和字符鍵(控制鍵)

 

 CPI CPU每執行一條指令所需的時鍾周期數

 X和Y各有 12條和14條指令

 X和Y所含的時鍾周期各為 5 + 9 + 8 + 4 = 26,4 + 15 + 8 + 6 = 33

 一個時鍾周期為 1/2GHz = 0.5 * 10^-9 = 0.5ns,X的CPU執行時間為 0.5 * 26 = 13ns,0.5 * 33 = 16.5ns

 

 

 存儲器字長16位,16位 2B,2^16*2B = 128KB

 2 4 譯碼器,00 ROM1,01 ROM2,11 RAM,A13找RAM,但是無法確定是那一片RAM,1接5,2接6,3接7,8接12,9接13,11接14

 

 MOV指令,RR(寄存器-寄存器),寄存器尋址

 STA指令,RS(寄存器-存儲器),基址尋址 + 變址尋址

 LDA指令,RS,直接尋址

 CPU完成MOV花費時間最短,完成STA花費時間最長

 (20010H) = 1111 0000 1111 0001,OP = 111100,執行LDA指令,目標寄存器 1111H = 15,R15,PC取值完后+1,所以PC指向20011H,將此時內存中 3CD2H送入R15

 (20012H) = 0010 1000 0101 0110,OP = 001010,指令MOV指令,目標寄存器 0101H = 5,R5,源寄存器 0110H = 6,R6,將R6的內容送入R5

 (20013H) = 0110 1111 1101 0110,OP = 011011,執行STA指令,源寄存器 1101H = R13,變址寄存器 0110H = 6,R6

 基值 + 變址偏移量 + 后繼地址變址偏移量 = 3H + (R6) + 2019H = (R6) + 201CH

 基址尋址

 計算公式:EA = (BR) + A

 有效地址是將CPU中基址寄存器BR的內容加上指令字中形式地址A

 變址尋址

 計算公式:EA = (IX) + A

 有效地址是將CPU中變址寄存器IX的內容加上指令字中有效地址A。

 流水線處理技術

  •  順序方式,控制簡單,節省設備,執行速度慢,機器效率低
  •  重疊方式,前一條指令解釋執行完成之后,就開始下一條指令的解釋執行,加快程序運行速度,對系統頻寬要求很高,一般要求存儲器多存儲器交叉工作
  •  流水方式,流水線各功能部件並行工作,同時進行多條指令的解釋執行,機器處理速度大大提高

 

 流水線分類(處理級別)

  •  操作部件級,將復雜的運算過程組成流水線的工作方式
  •  指令級,將指令的整個執行過程分為若干個子過程,取指、譯碼、取操作數、執行和存結果
  •  處理機級,宏流水線,多個處理機共享存儲處理同一數據流

 流水線分類(功能)

  •  單功能流水線,只完成一種功能
  •  多功能流水線,完成兩種以上功能,控制復雜

 流水線分類(工作方式)

  • 靜態流水線,既可以單功能也可以多功能,必須一種流水完成后,靜態切換到另一種功能
  • 動態流水線,允許同一時間內將不同功能段組合成具有多種功能的流水子集

 流水線分類(結構)

  •  線性流水線,最多只經過一次,無反饋回路
  •  非線性流水線,通過反饋回路多次被使用

 流水線相關問題

 資源相關

 有多條指令進入流水線后在同一機器周期爭用同一功能部件導致流水不能繼續運行

 解決方案

  •  后續相關指令延遲一節拍進入流水線
  •  增加緩沖部件,將指令提前預取到緩沖區

 數據相關

 多條指令進入流水線后,各條指令的操作重疊進行,使得原來對操作數的訪問順序發生了變化

 產生了錯誤的運行結果,導致數據相關沖突

 解決方案

  • 后續相關指令延遲進入流水線(推后法
  • 增加快速直接通道(0延遲量
  • 數據旁路技術

 控制轉移相關

 有分支指令,轉子指令和中斷等引起的相關。當轉移類指令進入流水時,引起轉移的狀態還未形成,無法確定后續指令的進入

 解決方案

  •  加快和提前形成條件碼
  •  預取轉移成功或不成功兩個分支序列的指令
  •  采用延遲轉移技術
     

 通過編譯器調整指令執行順序可解決部分控制冒險

 流水線主要指標

 

 

 

 

 Mux,2選1

 

  執行完上述指令后,r8的值變成了66

  會出現數據相關,r8的值可能會是 -36

 總運行時間:5t + 999t = 1004t = 10040ns

 吞吐率(單位時間內完成的指令數,任務數,輸出結果):1000 / 10040 ≈ 100條/ns

 加速比(采用流水線后工作速度與等效的順序串行方式工作速度之比,亦即串行工作時間/流水線工作時間):50000 / 10040 = 4.98

 時空比(n個任務占用的時空區/m段總的時空區 或者 加速比/m 或者 吞吐率*功能段周期),50000 / 5*10040 = 99.6%

 解決中斷引起的流水線斷流的方法 精確斷點法不精確斷點法

 階碼與尾數均采用原碼表示的范圍

 

 階碼與尾數均采用補碼表示的范圍

 

算編碼時,ALU觀察是信號還是功能,功能則+1<=2^n,信號直接數,寄存器有輸入則各算+1<=2^n。移位器編碼按字段直接編碼功能+1<=2^n

 從本質上講,U盤(閃存)是一種只讀存儲器

 PC的位數取決於存儲容量,MDR的位數取存儲字長,CPU的通用寄存器位數取決於機器字長,IR的位數取決於指令字長

 在DMA方式中,CPU和DMA控制器通常采用三種方法使用主存

  •  停止CPU訪問主存
  •  周期挪用
  •  CPU和DMA交替訪問

常用的虛擬存儲器尋址系統由主存-輔存兩級存儲器組成

RAID將多個物理盤組成單個邏輯盤

DMA方式下,數據從內存傳送到外設經過的路徑,內存->數據總線->DMAC->外設

用變形補碼進行加減運算時,可依據運算結果雙符號位判斷如下四種

  • -----運算結果為負數,無溢出
  • 00
  • -----運算結果為正數,無溢出
  • 10
  • -----運算結果下溢(負數溢出)
  • 01
  • -----運算結果上溢(正數溢出)

 低正高負

 

 計算機中信息以二進制方式表示是由物理器件的性能決定

 MIPS指令地址格式

 

 

 

進程A在計算機運行時間80s,60s是CPU時間,其余為IO時間,CPU速度提高50%,若CPU速度提高50%,IO不變,進程A所耗費的時間

60 / 150% = 40s,所以60s

堆棧計算機,零地址運算類指令,參加的兩個操作數是堆棧的棧頂和次棧頂單元

從CPU運行的程序特性來說,中斷具有隨機性異步性不可再現

動態半導體,利用電容存儲電荷,電容會充放電,每隔一段時間玉原存內容重新寫入一遍,刷新放大器集成在RAM上,只進行一次訪存,占用一個存取周期

微程序控制器,除公共指令外有32條指令,公共取指令微程序包含2條微指令,各指令微程序有4條微指令組成斷定法確定下條微指令地址,字段位數至少為8位

32*4 + 2 = 130,130 > 2^7 = 128

組相聯映像是直接映像和全相聯映像的普遍形式

三總線結構IO總線,主存總線和DMA總線

磁盤傳輸和傳輸速率的題目

 

 

 Cache的題目

 

 

 Cache的速度比

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM