JP5968693B2 - 半導体装置 - Google Patents
半導体装置 Download PDFInfo
- Publication number
- JP5968693B2 JP5968693B2 JP2012141718A JP2012141718A JP5968693B2 JP 5968693 B2 JP5968693 B2 JP 5968693B2 JP 2012141718 A JP2012141718 A JP 2012141718A JP 2012141718 A JP2012141718 A JP 2012141718A JP 5968693 B2 JP5968693 B2 JP 5968693B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- cache
- bit
- address
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
- Advance Control (AREA)
Description
特許文献1(特開2001−142698号公報)のメモリアクセス方式では、主記憶装置が、複数の命令コードにより記述されたプログラムを記憶し、中央演算処理装置が、記主記憶装置に記憶されたプログラムを読み込み、読み込んだプログラムに記述された命令コードに従って命令を実行する。命令用メモリは、主記憶装置と比べて高速に読み込み可能であり、中央演算処理装置が実行中の命令の次に実行する次命令の命令コードが記憶されているアドレスが、実行中の命令の命令コードが記憶されているアドレスと連続していないアドレス不連続命令について、アドレス不連続命令の命令コードを記憶する。高速アクセス制御部が、次命令がアドレス不連続命令であることを検出し、アドレス不連続命令の場合には、命令用メモリに記憶されたアドレス不連続命令の命令コードを検索して命令用メモリからアドレス不連続命令の命令コードを取得し、取得した命令コードを中央演算処理装置に転送する。
[第1の実施形態]
図1は、第1の実施形態の半導体装置の構成を表わす図である。
第2の実施形態では、分岐先命令をキャッシュする好適な構成を説明する。
図2を参照して、この半導体装置1は、CPU(Central Processing Unit)2と、ROM(Read Only Memory)5と、RAM(Random Access Memory)7と、CIF(Cpu InterFace)6とを備える。
キャッシュメモリ3は、キャッシュデータメモリ9と、タグメモリ11と、Vビットメモリ13とを有する。
入出力制御部10は、命令メモリ8に記憶されている分岐先命令をキャッシュデータメモリ9に登録する場合に、分岐先命令の先頭が含まれる64ビットの読出し単位データと、後続する64ビットの読出し単位データとを1つのキャッシュラインに登録する。具体的には、入出力制御部10は、分岐先命令を指定するアドレスの下位の3個のビットを0とした第1のアドレスで指定される64ビットの読出し単位データと、次の64ビットの読出し単位データをキャッシュラインに登録する。また、入出力制御部10は、第1のアドレスの下位3ビットを除いた部分をキャッシュラインを指定するタグアドレスとしてタグメモリ11に登録する。
第1キュー17は、キャッシュのヒット時に、キャッシュデータメモリ9から読みだされたキャッシュラインの前半の64ビットデータを一時的に保持する。第2キュー18は、キャッシュのヒット時に、キャッシュデータメモリ9から読みだされたキャッシュラインの後半の64ビットデータを一時的に保持する。
命令メモリ8は、可変長の命令、すなわち8ビット、16ビット、24ビット、32ビット、40ビット、48ビット、56ビット、または64ビットの命令を記憶する。命令メモリ8からは、64ビットの命令バスを通じて、64ビット単位でデータが読みだされる。命令メモリ8からのデータの読み出し位置を指定するアドレス(A3〜A24)は、64ビットの読出し単位データ#0、データ#1、データ#2・・・の先頭を表わす0b0・・・00000000、0b0・・・00001000、0b0・・・00010000、・・・で与えられる。
図5を参照して、アドレス比較器12は、比較器21_1〜21_Nと、論理積回路22_1〜22_Nと、論理和回路23とを含む。ただし、Nは、キャッシュデータメモリに格納可能なラインの総数である。
(従来のキャッシュ方式)
図6は、従来のキャッシュ方式において、分岐先命令がキャッシュされる例を説明するための図である。
(本実施の形態のキャッシュ方式)
図8は、本実施の形態のキャッシュ方式において、分岐先命令がキャッシュされる例を説明するための図である。
(分岐先命令キャッシュメモリへの登録)
図10は、分岐先命令をキャッシュメモリへ登録する処理を制御するシーケンサ19の動作を説明するための図である。
(1) タグアドレスを登録、バリッドビットをクリア、LRU更新。
(2) 前半の64ビットデータのキャッシュデータメモリへの書き込み、バリッドビットV0の書き込み。
(3) 後半の64ビットデータのキャッシュデータメモリへの書き込み、バリッドビットV1の書き込み。
図11は、分岐先命令がヒットする場合の動作例を示す図である。
シーケンサ19は、第1キュー17、第2キュー18の命令を順番にCPUコア4に送り、CPUコア4によって命令がデコードされる。命令Cがデコードされた後、CPUコア4は、分岐先アドレスJADDR(ここでは、命令Eのアドレス@E)を指定した分岐命令JUMPを実行する。
シーケンサ19は、第1キュー17の命令を順番にCPUコア4に送り、CPUコア4によって命令がデコードされる。
図12は、分岐先命令がミスする場合の動作例を示す図である。
CPUコア4は、要求信号REQを出力し、これに応答して命令メモリ8から送信される応答信号ACQを受け取る。Vビット制御部14は、バリッドビットV0,V1を「0」,「0」にクリアする。
第2の実施形態では、ジャンプ時にキャッシュラインの前半にある分岐先命令の先頭が検索される。しかしながら、キャッシュラインの後半にも、別の分岐先命令が格納されている場合がある。この分岐先命令も検索の対象とすることによって、ヒット率を向上させることができる。第3の実施形態では、後半の64ビットデータに対応するアドレスをタグアドレスから算出して、ヒット判定に使用する。
図13を参照して、アドレス比較器512は、比較器21_1〜21_N,25_1〜25_Nと、論理積回路22_1〜22_N,26_1〜26_Nと、論理和回路23,27と、加算器24_1〜24_Nと、論理和回路28と、論理積回路29とを備える。ただし、Nは、キャッシュデータメモリに格納可能なキャッシュラインの総数である
比較器21_i(i=1〜N)は、第iエントリのタグアドレスA3〜A24と、分岐先命令のアドレスJADDRのうち下位3ビットを除くアドレスJADDR[24:3]とを比較して、一致する場合には「H」レベルの信号を出力し、不一致の場合には「L」レベルの信号を出力する。
加算器24_iは、第iエントリのタグアドレスA3〜A24に「1」を加算することによって、タグアドレスの次のアドレスを出力する。タグアドレスがあるキャッシュラインの前半の64ビットデータの命令メモリ8内でのアドレスを示すので、タグアドレスの次のアドレスは、同一のキャッシュラインの後半の64ビットデータの命令メモリ8内でのアドレスを示す。
入出力制御部10は、セレクタ70とシフタ51を含む。
本実施の形態では、命令メモリからのデータの読み出し単位が、第2の実施形態よりも小さい場合について説明する。
図16の半導体装置101が、図2の半導体装置1と相違する点は以下である。
命令メモリ108は、可変長の命令、すなわち8ビット、16ビット、24ビット、32ビット、40ビット、48ビット、56ビット、または64ビットの命令を記憶する。命令メモリ108からは、32ビットの命令バスを通じて、32ビット単位でデータが読みだされる。命令メモリ108からのデータの読み出し位置を指定するアドレスは、32ビットのデータ#0、データ#1、データ#2・・・の先頭を表わす0b0・・・0000000、0b0・・・0000100、0b0・・・0001000、・・・で与えられる。
図19は、分岐先命令をキャッシュメモリへ登録する処理を制御するシーケンサ119の動作を説明するための図である。
(1) タグアドレスを登録、バリッドビットをクリア、LRU更新。
(2) 第1番目の32ビットデータのキャッシュデータメモリへの書き込み、バリッドビットV0の書き込み。
(3) 第2番目の32ビットデータのキャッシュデータメモリへの書き込み、バリッドビットV1の書き込み。
(4) 第3番目の32ビットデータのキャッシュデータメモリへの書き込み、バリッドビットV2の書き込み。
(5) 第4番目の32ビットデータのキャッシュデータメモリへの書き込み、バリッドビットV3の書き込み。
第5の実施形態では、分岐先命令をキャッシュメモリにシフトして格納する。
図20の半導体装置201が、図2の半導体装置1と相違する点は以下である。
入出力制御部210は、シフタ61を含み、シフタ61は、分岐先命令のアドレスJADDRの下位3ビットの値だけ、命令メモリ8から読みだされた128ビットの読出しデータをシフトして、64ビット幅のキャッシュラインに出力する。
入出力制御部210は、シフタ62を含み、シフタ62は、分岐先命令アドレスメモリ211に記憶されている分岐先命令の下位3ビット(A0〜A2)の値だけ、キャッシュデータメモリ209から読みだされた64ビットのデータをシフトして、CPUコア4へ出力する。
(1)半導体装置は、ビット幅がNビットであるメインメモリと、ビット幅がNビットのキャッシュラインを有するキャッシュメモリとを備える。さらに、半導体装置は、前記メインメモリに記憶されているMビット(M≦N)の命令を前記キャッシュメモリに登録する場合に、前記命令の先頭が含まれるNビットの読出し単位データと後続のNビットの読出し単位データとを読み出して、命令の先頭がキャッシュラインの先頭になるように、読出した2Nビットのデータをシフトして登録するキャッシュ制御部とを備える。
Claims (9)
- ビット幅がNビットであるメインメモリと、
L(N×X:Xは2以上の自然数)ビット幅のキャッシュラインを有するキャッシュメモリと、
前記メインメモリに記憶されているMビット(2×M≦L)の命令を前記キャッシュメモリに登録する場合に、前記命令の先頭が含まれるNビットの読出し単位データと、後続する(X−1)個のNビットの読出し単位データを1つのキャッシュラインに登録するキャッシュ制御部とを備え、
前記メインメモリの各読出し単位データ内の命令の位置がsビットで指定される場合に、
前記キャッシュ制御部は、前記命令を指定するアドレスの下位のs個のビットを0とした第1のアドレスで指定されるNビットの読出し単位データと、次の(X−1)個のNビットの読出し単位データを前記キャッシュラインに登録する、半導体装置。 - 前記キャッシュ制御部は、前記第1のアドレスの下位sビットを除いた部分を前記キャッシュラインを指定するタグアドレスとして前記キャッシュメモリに登録する、請求項1記載の半導体装置。
- 前記命令は、分岐命令で指定される分岐先命令である、請求項2記載の半導体装置。
- 前記キャッシュ制御部は、分岐命令で指定される前記分岐先命令のアドレスにジャンプする場合に、前記アドレスの下位sビットを除いた部分と前記タグアドレスとが一致する場合に、前記タグアドレスに対応するキャッシュラインのデータを読み出す、請求項3記載の半導体装置。
- X=2である、請求項3記載の半導体装置。
- 前記キャッシュ制御部は、分岐命令で指定される前記分岐先命令のアドレスにジャンプする場合に、前記アドレスの下位sビットを除いた部分と前記タグアドレスの次のアドレスが一致する場合に、前記タグアドレスに対応するキャッシュラインのデータを読み出す、請求項3記載の半導体装置。
- 前記キャッシュ制御部は、前記読み出したキャッシュラインのデータのうち、次のアドレスに対応するNビットのデータをCPUコアへ出力する、請求項5記載の半導体装置。
- 前記メインメモリは、可変長命令を記憶する、請求項1記載の半導体装置。
- 前記キャッシュ制御部は、前記キャッシュラインに登録された各読出し単位データが有効かを否かを表わすデータを前記キャッシュメモリに登録する、請求項1記載の半導体装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2012141718A JP5968693B2 (ja) | 2012-06-25 | 2012-06-25 | 半導体装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2012141718A JP5968693B2 (ja) | 2012-06-25 | 2012-06-25 | 半導体装置 |
Publications (3)
| Publication Number | Publication Date |
|---|---|
| JP2014006685A JP2014006685A (ja) | 2014-01-16 |
| JP2014006685A5 JP2014006685A5 (ja) | 2015-04-09 |
| JP5968693B2 true JP5968693B2 (ja) | 2016-08-10 |
Family
ID=50104348
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2012141718A Expired - Fee Related JP5968693B2 (ja) | 2012-06-25 | 2012-06-25 | 半導体装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP5968693B2 (ja) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN115145859B (zh) * | 2022-06-27 | 2025-09-23 | 曙光信息产业(北京)有限公司 | 一种数据传输方法、装置、电子设备和存储介质 |
Family Cites Families (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH11312085A (ja) * | 1998-04-28 | 1999-11-09 | Hitachi Ltd | プロセッサ |
| US7568070B2 (en) * | 2005-07-29 | 2009-07-28 | Qualcomm Incorporated | Instruction cache having fixed number of variable length instructions |
-
2012
- 2012-06-25 JP JP2012141718A patent/JP5968693B2/ja not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JP2014006685A (ja) | 2014-01-16 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US10394718B2 (en) | Slot/sub-slot prefetch architecture for multiple memory requestors | |
| US6665774B2 (en) | Vector and scalar data cache for a vector multiprocessor | |
| CN100390756C (zh) | 一种将储存数据重新导向的虚拟集合高速缓存 | |
| JP6011194B2 (ja) | 演算処理装置及び演算処理装置の制御方法 | |
| CN101432703B (zh) | 用于高速缓存可变长度指令的方法及设备 | |
| JPS61107434A (ja) | デ−タ処理装置 | |
| CN110427332B (zh) | 数据预取装置、数据预取方法及微处理器 | |
| JP3498673B2 (ja) | 記憶装置 | |
| JP5583893B2 (ja) | 演算処理装置及び演算処理装置の制御方法 | |
| US8578135B2 (en) | Apparatus for calculating and prefetching a branch target address | |
| JP5968693B2 (ja) | 半導体装置 | |
| TWI514143B (zh) | 傳送請求區塊的快取記憶體系統及方法 | |
| US8255632B2 (en) | Pre-fetch control apparatus | |
| JP3961371B2 (ja) | 情報処理装置 | |
| JP5206385B2 (ja) | バウンダリ実行制御システム、バウンダリ実行制御方法、及びバウンダリ実行制御プログラム | |
| JP2008257508A (ja) | キャッシュ制御方法およびキャッシュ装置並びにマイクロコンピュータ | |
| JP2004005710A (ja) | 情報処置装置 | |
| JPH10116229A (ja) | データ処理装置 | |
| US6904500B2 (en) | Cache controller | |
| JP2009217714A (ja) | データ処理回路、キャッシュシステムおよびデータ転送装置 | |
| US6922767B2 (en) | System for allowing only a partial value prediction field/cache size | |
| JP7672605B2 (ja) | 演算処理装置および演算処理方法 | |
| JP6451475B2 (ja) | 演算処理装置、情報処理装置および演算処理装置の制御方法 | |
| JP5480793B2 (ja) | プログラマブルコントローラ | |
| JPS6027967A (ja) | バツフア記憶装置のブロツク転送制御方式 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150223 |
|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20150223 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20160118 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160126 |
|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20160405 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160419 |
|
| A911 | Transfer of reconsideration by examiner before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20160606 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20160705 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160706 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 5968693 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| LAPS | Cancellation because of no payment of annual fees |