JP2004102799A - レジスタファイル及びレジスタファイルの設計方法 - Google Patents
レジスタファイル及びレジスタファイルの設計方法 Download PDFInfo
- Publication number
- JP2004102799A JP2004102799A JP2002265521A JP2002265521A JP2004102799A JP 2004102799 A JP2004102799 A JP 2004102799A JP 2002265521 A JP2002265521 A JP 2002265521A JP 2002265521 A JP2002265521 A JP 2002265521A JP 2004102799 A JP2004102799 A JP 2004102799A
- Authority
- JP
- Japan
- Prior art keywords
- circuit
- register
- data
- output
- input
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30141—Implementation provisions of register files, e.g. ports
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Logic Circuits (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
【解決手段】各レジスタFiに配設される入力ポート選択部130は、入力ポートに対応した数の論理積回路と、論理積回路の出力の論理和をとる論理和回路とで構成される。入力ポート選択部130の各論路積回路は、対応する書き込みポートWR_DATAjのデータと、そのデータを記憶部140に入力するか否かを指定する選択信号Sijとを受信している。各論理積回路は、更に、当該論理積回路に対応する書き込みポートWR_DATAjよりも優先順位が高く設定された書き込みポートWR_DATAjのデータを書き込むか否かを指定する選択信号Sijの反転信号を受信し、それら受信した信号の論理積を論理和回路に出力する。
【選択図】 図1
Description
【発明の属する技術分野】
本発明は、レジスタファイル及びレジスタファイルの設計方法に関し、更に詳しくは、モジュール化されたセルを配置するセルベース設計によって設計されるレジスタファイル及びレジスタファイルの設計方法に関する。
【0002】
【従来の技術】
一般に、ASIC(特定用途向けIC)やLSIなどの半導体装置の設計では、セルベース設計が採用され、このセルベース設計では、設計済みの回路がモジュール化されて記憶されるセルライブラリを使用する。セルライブラリには、AND(論理積)回路やOR(論理和)回路、フリップフロップなどの基本的な回路ブロック(プリミティブセル)から、ALUや加算器などの中規模な回路ブロック(マクロセル)、CPUやRAMなどの大規模な回路ブロック(メガセル)まで、さまざまな回路規模のハードウェアマクロ(セル)が記憶されており、半導体装置は、セルベース設計でこれらのセルを組み合わせて設計される。このように、セルライブラリを活用することで、半導体装置の設計や検証に要する時間を短縮することができる。
【0003】
例えば、プロセッサを組み込んだ半導体装置を設計する場合には、半導体装置の設計者は、回路規模や処理能力などを勘案して、セルライブラリから使用するプロセッサコアを選択する。一般に、プロセッサコアは、それを専門に開発する部門により、基本アーキテクチャが最適化構成で設計され、半導体装置に組み込み可能な状態で提供される。半導体装置の設計者は、プロセッサコアに、半導体装置に要求される周辺資源を設定して半導体装置に組み込む。周辺資源を半導体装置に応じて設定することで、同じ基本アーキテクチャを有するプロセッサコアを、異なる周辺資源を有するプロセッサとして、半導体装置に組み込むことができる。
【0004】
図7は、従来の手法で設計した半導体装置の一部を構成するレジスタファイルの構成例を示している。レジスタファイルは、技術文献1に記載されているように、複数のレジスタを備え、指定されたレジスタにデータを書き込む、或いは、指定されたレジスタからデータを読み出す機能を有する。例えば、プロセッサコアでは、レジスタファイルとのインタフェースが規定されており、半導体装置の設計者は、自身の設計に応じて、レジスタ数や、書き込みポート数、読み込みポート数などを設定する。
【0005】
【非特許文献1】
「コンピュータの構成と設計 下」 ジョン・L・ヘネシー、デイビット・A・パターソン 著、成田光彰 訳、日経BP社 発行、 1996年 ISBN4−8222−8002−0、p678−p680
【0006】
図7に示す例では、レジスタファイル200は、4ビットのレジスタFi(i:レジスタ番号0〜3)、選択信号生成部210、及び、出力ポート選択部220から構成され、書き込みポートWR_DATAj(j:書き込みポート番号0〜3)、及び、読み出しポートRD_DATAk(k:読み出しポート番号0〜3)を備える。
【0007】
選択信号生成部210は、書き込みポートWR_DATAjに対応した4つのデコーダDECj及び論理積回路ANDjと、ANDjの論理和をとる論理和回路ORとで構成される。各デコーダDECjは、2ビットの書き込みアドレス信号WR_ADRSjを4ビットの信号にデコードする。各論理積回路ANDjは、デコードされた信号と、図示しないプロセッサコアから送信される書き込みイネーブル信号WR_ENiとの論理積を、選択信号としてレジスタFiに向けて送信する。論理和回路ORは、同じレジスタFiに向けた論理積回路ANDjからの出力の論理和をとり、何れかの書き込みアドレス信号WR_ADRSjによって選択されたレジスタFiに、アクティブ信号αiを送信する。
【0008】
出力ポート選択部220は、各レジスタFiが記憶するデータQiのうち、何れかのデータを出力するマルチプレクサMUXを、読み出しポートRD_DATAk数に対応して配設する。各マルチプレクサMUXは、各レジスタFiが記憶するデータQiを入力し、2ビットの読み出しアドレス信号RD_ADRSkに基づいて、読み出しポートRD_DATAkから読み出すべきレジスタFiのデータQiを選択する。
【0009】
各レジスタFiは、入力ポート選択部230、及び、記憶部240を備える。入力ポート選択部230は、3つのマルチプレクサ231、232、233を有し、優先順位が設定されたセレクタとして構成される。入力ポート選択部230は、選択信号生成部210からの選択信号に基づいて、記憶部240に接続する書き込みポートWR_DATAjを選択する。このとき、複数の書き込みアドレスWR_ADRSjが、同じレジスタFiを同時に指定するときには、入力ポート選択部230は、ポート番号が小さい方(WR_DATA0側)を優先して選択する。また、書き込みアドレスWR_ADRSjが何れのポートも指定しないときには、優先度が最も高い又は低い書き込みポートWR_DATAjからのデータが選択される。
【0010】
記憶部240は、データ保持部241及びクロックゲート242を有する。データ保持部241は、記憶するデータのビット数に対応した同期型のDフリップフロップ(D−FF)を有し、各D−FFは、書き込みポートWR_DATAjの何れかのポートから入力された4ビットのデータを、クロック信号CLKに同期して、1ビットずつ記憶する。クロックゲート242は、クロック信号CLKと、アクティブ信号αiとの論理積回路として構成される。書き込みポートWR_DATAjは、図示しないデータライン(バス)に接続するため、レジスタFiへの書き込みが指定されないときでも、各レジスタFiのD−FFのデータ入力端子Dにはデータラインからのデータが入力される。このとき、書き込みが行われないレジスタFiでは、クロックゲート242が、Lレベルのアクティブ信号αiに基づいてD−FFのクロック入力端子CLKをLレベルに固定するため、データ保持部241が記憶しているデータが変更されない。
【0011】
ここで、出力ポート選択部220のマルチプレクサMUXの設計について説明する。図8は、出力ポート選択部220のマルチプレクサMUXの記述例を示している。図9は、4入力−1出力のマルチプレクサの構成例を示している。また、図10は、プリミティブセルとしてセルライブラリに記憶される2入力−1出力のマルチプレクサのゲートレベルの回路構成例を示している。
【0012】
一般に、セルベース設計では、ハードウェア記述言語(HDL)を用いて回路ブロックの機能を記述し、その記述を基に論理合成して、プリミティブセルを組み合わせたゲートレベルの回路構成を得る手法を採用する。図7に示す半導体装置を設計する際には、出力ポート選択部220の各マルチプレクサMUXを、図8の記述例のようにcase文を用いて記述する。セルライブラリには、図10に示すゲートレベルの回路構成を有する2入力−1出力のマルチプレクサがプリミティブセルとして用意されており、図8の記述例から得られる機能は、図9に示すような2入力−1出力のマルチプレクサ221〜223の組み合わせによって実現する。図9に示す各マルチプレクサ221〜223は、論理合成ツールによって、図10に示す回路構成で、設計される半導体装置に組み込まれる。なお、各マルチプレクサ221〜223のゲートレベルの回路構成は、使用する論理合成ツールやセルライブラリによっては、図10に示す構成とは異なる回路構成となる場合がある。
【0013】
【発明が解決しようとする課題】
ところで、半導体装置をセルベース設計手法を用いて設計する際には、半導体装置の設計者は論理合成ツールを使用してゲートレベルの回路構成を得るため、回路構成が必ずしも最適な構成とはならないことがあった。例えば、出力ポート選択部220のマルチプレクサMUXが、論理合成によって図10に示すゲートレベルの回路を組み合わせて、図9に示すように構成された場合には、読み出しアドレスRD_ADRSkが変化した際に、各レジスタFiが記憶するデータQiの組み合わせによっては、以下に示すように、消費電力が大きくなる。
【0014】
レジスタF0〜F3が記憶するデータQ0〜Q3の0ビット目のデータが、Q0から順に(0、1、0、1)であり、読み出しアドレスRD_ADRS0が(00)であった場合には、1段目のマルチプレクサ221、222では、読み出しアドレス信号RD_ADRS0の下位ビットに基づいて、一方のマルチプレクサ221はデータQ0を出力し、他方のマルチプレクサ222はデータQ2を出力する。2段目のマルチプレクサ223は、読み出しアドレス信号RD_ADRS0の上位ビットに基づいて、データQ0を選択し、「0」を出力する。
【0015】
読み出しアドレス信号RD_ADRS0が(11)に遷移した場合には、1段目の双方のマルチプレクサ221、222は、データQ1、Q3をそれぞれ出力し、2段目のマルチプレクサ223は、データQ3を選択して「1」を出力する。この例では、選択されないデータQ1を入力する1段目のマルチプレクサ222においても、その出力が「0」から「1」に変化する。各マルチプレクサ221〜223は、出力が「0」から「1」に変化する際には電流が流れるため、図9に示すマルチプレクサMUXは、無駄に電力が消費されるという問題が生じる。
【0016】
ここで、図11は、レジスタFiのデータ保持部241で使用される同期型のD−FFの構成例を示している。D−FFは、マスタスレーブ型のD−FFとして構成され、マスタラッチ243及びスレーブラッチ244を備える。D−FFは、クロック信号CLKの立ち上がりに同期してD端子から入力されたデータを記憶する。マスタラッチ243では、クロック信号CLKがLレベルの期間に、D端子から入力されるデータに従って、スレーブラッチ244への出力ノードの電位が変化する。スレーブラッチ244は、クロック信号CLKがHレベルに立ち上がると、マスタラッチ243の出力ノードの電位に従ってデータを記憶し、記憶したデータを出力端子Qから出力する。
【0017】
データ保持部241のD−FFのD端子には、前述のように、書き込みが行われないときにも、何れかの書き込みポートWR_DATAjが選択されて、そのポートに接続するデータラインのデータが入力される。この場合、クロックゲート242がクロック入力端子をLレベルに固定した場合であっても、マスタラッチ243では、変動するデータラインのデータに従って、スレーブラッチ244への出力ノードの電位が変化する。このため、スレーブラッチ244の記憶状態が変化しないにもかかわらず、マスタラッチ243の出力ノードの電位が「0」から「1」、又は、「1」から「0」に変化し、無駄に電力が消費されるという問題があった。
【0018】
本発明は、上記問題を解消し、無駄な消費電力を低減したレジスタファイル及びレジスタファイルの設計方法を提供することを目的とする。
【0019】
【課題を解決するための手段】
上記目的を達成するために、本発明のレジスタファイルは、複数の入力ポートと、複数のレジスタとを備え、各入力ポートから入力するデータを、書き込みアドレスで指定されたレジスタに書き込むレジスタファイルであって、前記レジスタのそれぞれは、前記入力ポートに対応する論理積回路と該論理積回路の出力の論理和をとる論理和回路とを有する入力ポート選択部と、該入力ポート選択部の出力を記憶する記憶部とを備え、前記論理積回路のそれぞれは、対応する入力ポートから入力する書き込みデータを書き込むか否かを指定する書き込み指令信号を受信しており、前記書き込みデータと、前記書き込み指令信号と、当該論理積回路に対応する入力ポートよりも優先順位が高い入力ポートに対応する論理積回路に入力する書き込み指令信号の反転信号との論理積をとることを特徴とする。
【0020】
本発明のレジスタファイルでは、各レジスタは、何れの入力ポートからのデータを記憶するかを選択するための入力ポート選択部と、データを記憶するための記憶部とを備える。各入力ポート選択部は、優先度付きのセレクタとして構成され、入力ポートに対応した数の論理積回路と、論理和回路とを備える。各論理積回路は、入力ポートからのデータと、そのデータを記憶部に入力するか否かを指定する書き込み指令信号とを受信しており、更に、その論理積回路に対応する入力ポートよりも優先順位が高く設定された入力ポートに対応する論理積回路に入力する書き込み指令信号の反転信号を受信する。各論理積回路は、受信したデータ及び信号の論理積をとり、その論理積を論理和回路へ出力する。従って、同じレジスタにおいて、2以上の書き込み指令信号がHレベルに活性化されているときでも、優先順位が低い方の入力ポートに対応する論理回路の出力はLレベルに非活性化される。論理和回路は、各論路積回路の出力の論理和ととり、その論理和を、つまり、何れかの入力ポートから入力されたデータを記憶部に入力する。入力ポート選択部は、何れの書き込み指令信号もLレベルであるとき、言い換えると、何れの入力ポートのデータも記憶部に入力するように指定されないときには、その出力はLレベルに固定される。このため、レジスタにデータの書き込みが行われないときに、入力ポートのデータが変動することによって生じていた記憶部の入力ノードの電位の変動を防ぐことができ、記憶部で無駄に消費される電力を低減することができる。
【0021】
本発明のレジスタファイルは、複数の出力ポートと、該出力ポートに対応して配設される読み出しデータ選択回路とを更に備え、該読み出しデータ選択回路が、各レジスタに対応して配設され各レジスタが記憶する記憶データと、指定されたレジスタに対応してアクティブになるアクティブ信号との論理積をとる論理積回路と、該論理積回路の出力の論理和をとる論理和回路とを備えることが好ましい。アクティブ信号は、例えば、出力ポート毎に指定される、その出力ポートから読み出すべきレジスタを指定する読み出しアドレスに基づいて、何れか1つのみがアクティブとなる。読み出しデータ選択回路は、アクティブ信号と記憶データとの論理積をとり、その論理和を出力することで、読み出しポートから読み出すべきレジスタのデータを選択する。読み出しポートから出力されないデータが入力される論理積回路の出力は、常にLレベルに固定されるため、2入力−1出力のマルチプレクサを複数段設けることで構成した多入力−1出力のマルチプレクサを使用する場合に比べて、レジスタの読み出し側で消費する電力を削減することができる。
【0022】
本発明のレジスタファイルでは、前記記憶部に、前記論理和回路の出力をラッチするマスタラッチと、該マスタラッチに後続するスレーブラッチとを有する同期型のD型フリップフロップを使用することができる。一般に、同期型のD−FF(D型フリップフロップ)は、クロックがLレベルの期間に記憶状態が入力ノードに基づいて変化するマスタラッチと、クロックがHレベルになるとマスタラッチの出力ノードの電位に基づいて記憶状態を変化させるスレーブラッチで構成される。記憶部に、このようなD−FFを使用した場合には、レジスタにデータの書き込みが指示されないときには、D−FFに入力するクロック信号をLレベルに固定して、スレーブラッチを動作させないようにする。このとき、記憶部の入力ノードの電位もLレベルに固定することで、入力ポートのデータ(電位)が変動しても、マスタラッチの記憶状態が変化せず、電力が無駄に消費されない。
【0023】
本発明のレジスタファイルでは、前記書き込み指令信号を、入力ポート毎に指定される書き込みアドレスをレジスタ数に対応した数にデコードした信号と、前記入力ポート毎に書き込み許可又は不許可を指定する書き込み許可信号との論理積に基づいて生成することができる。この場合、書き込み指令信号は、外部から入力される書き込み許可信号が書き込みを指示したときに、アクティブとなる信号として構成することができる。
【0024】
本発明のレジスタファイルは、複数のレジスタと、複数の出力ポートとを備え、各出力ポートが、読み出しアドレスで指定されたレジスタからデータを出力するレジスタファイルであって、前記出力ポートに対応して配設される読み出しデータ選択回路を備え、該読み出しデータ選択回路が、各レジスタに対応して配設され各レジスタが記憶する記憶データと、指定されたレジスタに対応してアクティブになるアクティブ信号との論理積をとる論理積回路と、該論理積回路の出力の論理和をとる論理和回路とを備えることを特徴とする。
【0025】
本発明のレジスタファイルでは、読み出しデータ選択回路は、複数入力−1出力のセレクタとして構成され、読み出しポートから読み出すべきレジスタのデータを選択する。アクティブ信号は、例えば、出力ポート毎に指定される、その出力ポートから読み出すべきレジスタを指定する読み出しアドレスに基づいて、何れか1つのみがアクティブとなる。読み出しデータ選択回路は、アクティブ信号とレジスタの記憶データとの論理積をとったもの論理和を出力する。読み出しポートから出力されないデータが入力される論理積回路の出力は、常にLレベルに固定されるため、2入力−1出力のマルチプレクサを複数段設けることで構成した多入力−1出力のマルチプレクサを使用する場合に比べて、レジスタの読み出し側で消費する電力を削減することができる。
【0026】
本発明のレジスタファイルの設計方法は、上記レジスタファイルを設計する方法であって、前記読み出しデータ選択回路を、論理和回路と論理積回路との組み合わせでハードウェア化されるように記述することを特徴とする。
【0027】
本発明のレジスタファイルの設計方法では、セルベース設計において、ハードウェア記述言語などを用いてRT(レジスタ転送)レベルで設計する際に、読み出しデータ選択回路の部分が、論理合成された際に論理和回路と論理積回路との組み合わせでハードウェア化されるように記述する。一般に、セレクタの機能をcase分などを用いて記述すると、セルライブラリに登録されたマルチプレクサを使用してハードウェア化されるが、そのゲートレベルの回路構成は、使用するセルライブラリや論理合成ツールによっては、必ずしも論理和回路と論理積回路との組み合わせで構成されない。読み出しデータ選択回路部分のハードウェア記述を、論理和回路と論理積回路とが使用されるように明示して記述することで、これらの回路の組み合わせでハードウェアかされた読み出しデータ選択回路を得ることができる。
【0028】
【発明の実施の形態】
以下、図面を参照し、本発明の実施形態例に基づいて、本発明を更に詳細に説明する。図1は、本発明の一実施形態例のレジスタファイルの構成例をブロック図として示している。レジスタファイル100は、入力ポート選択部130及び出力ポート選択部120の構成が、図7に示す従来のレジスタファイル200と相違する。レジスタファイル100は、4ビットのレジスタFi(i:レジスタ番号0〜3)、選択信号生成部110、出力ポート選択部120を備え、図示しないプロセッサコアと共に半導体装置に組み込まれる。また、レジスタファイル100は、4ビットのデータを入力する複数の書き込みポートWR_DATAj(j:書き込みポート番号0〜3)と、4ビットのデータを出力する複数の読み出しポートRD_DATAk(k:読み出しポート番号0〜3)とを備える。
【0029】
選択信号生成部110は、書き込みポート数jに対応したデコーダDECj及び論理積回路ANDjと、アクティブ信号生成回路111とを有し、何れかの書き込みポートWR_DATAjからのデータを、何れのレジスタFiに書き込むかを選択するための信号を生成する。各デコーダDECjは、書き込みアドレス信号WR_ADRSjを、何れかのビットのみが1となる、レジスタ数に対応したビット数の信号にデコードする。例えば、2ビットのアドレスとして(01)が指定されたとき、デコーダDECjは、レジスタF1を選択するための4ビットの信号(0010)を出力する。
【0030】
図2は、選択信号生成部110の一部詳細を示している。各論理積回路ANDjは、レジスタ数に対応した数の論理積回路ANDijで構成され、デコーダDECjによってデコードされた信号と、プロセッサコアから送信される書き込みイネーブル信号WR_ENjとの論理積を、選択信号SijとしてレジスタF0〜F3に向けて送信する。例えば、同図に示したデコーダDEC0からの信号がAND00側から順に(0、1、0、0)であり、書き込みポートWR_DATA0からのデータを何れかのレジスタFiに書き込むことを許可する書き込みイネーブル信号WR_EN0が1であったときには、論理積回路AND0からは、レジスタF1に向けた選択信号S10のみが1となった選択信号Si0(=0、1、0、0)が送信される。
【0031】
アクティブ信号生成回路111は、レジスタ数に対応して配設され、同じレジスタ番号について選択信号Sijの論理和をとり、書き込みアドレス信号WR_ADRSjによって選択されたレジスタFiに、アクティブ信号αiを送信する。例えば、レジスタF1に、何れかの書き込みポートWR_DATAjからのデータを書き込むべきときには、論理積回路ANDjから出力される選択信号S10〜S13までの論理和が「1」となり、アクティブ信号生成回路111は、これをアクティブ信号α1としてレジスタF1に送信する。
【0032】
図3は、レジスタF0の構成をブロック図として示している。各レジスタFiは、同図に示すレジスタF0と同様な構成を有し、入力ポート選択部130、及び、記憶部140を備える。入力ポート選択部130は、書き込みポートWR_DATAjから入力されたデータを、選択信号生成部110が生成した選択信号Sijに基づいて、記憶部140に入力する。記憶部140は、記憶するデータのビット数に対応したデータ保持部141及びクロックゲート142を有し、データQiを出力する。なお、同図におけるカッコ内の数字は、データのビット番号を示している。
【0033】
入力ポート選択部130は、データのビット数に対応したAND回路131〜134及びOR回路135で構成される。各AND回路131は、選択信号S00と書き込みポートWR_DATA0からのデータとの論理積を出力する。各AND回路132は、選択信号S00の反転信号と、選択信号S01と、書き込みポートWR_DATA1からのデータとの論理積を出力し、各AND回路133は、選択信号S00の反転信号と、選択信号S01の反転信号と、選択信号S02と、書き込みポートWR_DATA2からのデータとの論理積を出力し、各AND回路134は、選択信号S00の反転信号と、選択信号S01の反転信号と、選択信号S02の反転信号と、選択信号S03と、書き込みポートWR_DATA3からのデータとの論理積を出力する。各OR回路135は、各AND回路131〜134の出力の論理和を記憶部140に出力する。
【0034】
入力ポート選択部130は、図7に示す従来のレジスタファイル200における入出力ポート選択部230と同様に優先度付きのセレクタとして構成される。例えば、選択信号S00がHレベルのときには、各AND回路132〜134の出力はLレベルに固定されるため、常に、書き込みポートWR_DATA0からのデータがOR回路135を介して記憶部140に入力される。また、AND回路134には選択信号S00〜S02の反転が入力されるため、書き込みポートWR_DATA0〜2の何れかのポートからのデータを記憶部140に入力するように指定されているときには、選択信号S03がHレベルであっても、書き込みポートWR_DATA3からのデータは記憶部140に入力されない。
【0035】
データ保持部141は、レジスタFiが記憶するデータのビット数に対応した数の同期型のDフリップフロップ(D−FF)を有する。各D−FFは、何れかの書き込みポートWR_DATAjから入力されたデータを、クロックゲート142を介して入力するクロック信号CLKに同期して、1ビットずつ記憶する。
【0036】
図4(a)は、クロックゲート142の構成例を、同図(b)はその動作例を示している。同図(a)に示すように、クロックゲート142は、ラッチ回路143と、論理積回路144とを備える。ラッチ回路143は、同図(b)に示すように、クロック信号CLKの立ち下りで、アクティブ信号αiをラッチし、ラッチされたアクティブ信号βiを出力する。論理積回路144は、クロック信号CLKと、ラッチされたアクティブ信号βiとの論理積を取り、ラッチされたアクティブ信号βiがHレベルの期間に、クロック信号CLKを記憶部141の各D−FFのクロック端子に供給する。
【0037】
例えばレジスタF0では、何れかの選択信号S0jがHレベルであるときには、アクティブ信号α0がHレベルとなって、データ保持部141の各D−FFのクロック端子には、クロック信号CLKが有効に入力される。このとき、入力ポート選択部130は、書き込みが指定された書き込みポートWR_DATAjからのデータを各D−FFのD端子に入力する。一方、選択信号S0jの何れもがLレベルであるときには、各D−FFのクロック端子、及び、D端子から入力される信号は共にLレベルに固定され、各D−FFが記憶するデータは更新されない。
【0038】
図1に戻り、出力ポート選択部120は、読み出しポートRD_DATAk数に対応する数の選択回路121を備え、図7に示す従来のレジスタファイル200における出力ポート選択部220と同様な機能を有する。各選択回路121は、従来の出力ポート選択部220のマルチプレクサMUXと同様に、レジスタFiが記憶するデータQiを入力し、読み出しアドレスRD_ADRSkに基づいて、読み出しポートRD_DATAkから読み出すべきデータQiを選択する。
【0039】
図5は、選択回路121の構成を示している。各選択回路121は、レジスタFiが記憶するデータのビット数に対応した数のAND回路122〜125及びOR回路126〜128と、デコーダ129とを備える。デコーダ129は、読み出しポートRD_DARAkから読み出すレジスタFiを選択するために、読み出しアドレスRD_ADRSkに基づいて、レジスタ数に対応した出力信号線のうち、何れかの信号線のみがHレベルとなる信号を生成する。例えば、2ビットのアドレスとして(01)が指定されたとき、デコーダ129は、レジスタF1を選択するための4ビットの信号(0010)を出力する。
【0040】
各AND回路122〜125は、レジスタFiのデータQiと、対応するデコーダ129の出力信号との論理積を、OR回路126又は127に出力する。デコーダ129からは何れか一のみがHレベルとなる信号が入力されるため、各AND回路122〜125は、その何れか1つのみを除いて、Lレベルに固定された信号を出力する。1段目のOR回路126、127は、AND回路122、123、又は、AND回路124、125の出力の論理和を、2段目のOR回路は、1段目のOR回路126、127の論理和を出力する。
【0041】
例えば、レジスタF0〜F3のデータQ0〜Q3の0ビット目のデータが、Q0から順に(0、1、0、1)であり、読み出しアドレスRD_ADRS0が(00)であった場合には、読み出しポートRD_DATA0に対応する選択回路121では、デコーダ129からAND回路122にHレベルの信号が送信されるが、データQ0(0)が0(Lレベル)であるため、各AND回路122〜125の出力は全て0(Lレベル)となり、読み出しポートRD_DATA0からデータQ0(0)のデータである「0」が出力される。ここで、読み出しアドレスRD_ADRS0が(11)に遷移した場合には、デコーダ129からAND回路125にHレベルの信号が送信され、AND回路125、及び、OR回路127、128の出力が「0」から「1」に遷移して、読み出しポートRD_DATA0からデータQ3(0)のデータである「1」が出力される。
【0042】
図6は、選択回路121の記述例を示している。本実施形態例における選択回路121の記述例は、case分を用いないで、論理和及び論理積を用いて機能が記述される点で、図8に示す従来のマルチプレクサMUXの記述例と相違する。同図において、「&」は論理積としてハードウェア化される部分を示し、「|」は論理和としてハードウェア化される部分を示している。本実施形態例では、マルチプレクサの機能を、マルチプレクサとして用意されているプリミティブセルを使用しないように、選択回路121を論理回路の組み合わせで記述する。このため、選択回路12のゲートレベルの回路が、使用する論理合成ツールやセルライブラリに依存せず、ANDやORなどの論理回路の組み合わせで構成できる。
【0043】
本実施形態例の半導体装置で使用される選択回路121は、デコーダ129を備えるため、その分の回路が必要となり、入力される読み出しアドレスRD_ADRSkが変化したときにはデコーダで電流が流れる。しかし、デコーダ129は、レジスタFiのデータQiの全てのビットに共通して使用されるため、その他の部分と比較してデコーダ129の回路規模は相対的に小さく、読み出しアドレスRD_ADRSkが変化したときに流れる電力の消費も少ない。図9に示す従来のマルチプレクサMUXでは、選択されないデータを入力する1段目のマルチプレクサの出力が変化すると無駄に電力が消費されたが、本実施形態例では、選択されないデータが入力されるAND回路122〜1254の出力は変化しないため、この部分での電力の消費が抑えられる。
【0044】
本実施形態例の半導体装置では、優先度付きのセレクタとして構成される入力ポート選択部130を、論理積回路と論理和回路との組み合わせで構成する。図7に示す従来の入力ポート選択部230では、クロックがLレベルに固定されているときでも、データ保持部241の入力が変化したが、本実施形態例では、入力ポート選択部130は、データの書き込みが行われないときには、データ保持部141への出力をLレベルに固定する。このため、書き込みが行われないときに、データ保持部141のD−FFのマスタラッチが動作せず、無駄に電力が消費されない。
【0045】
また、選択回路121の設計に際しては、プリミティブセルとして用意されているマルチプレクサを用いてゲートレベルの回路が構成されないように、敢えて、その機能を論理積と論理和との組み合わせで記述する。このため、選択回路121のゲートレベルの回路構成は、論理合成ツールやセルライブラリに依存せず、常に、論理積回路と論理和回路との組み合わせによって実現する。このため、従来の出力ポート選択部120で発生した無駄な電力の消費を抑えることができる。
【0046】
なお、上記実施形態例では、レジスタ数、レジスタが記憶するデータのビット長、書き込みポート数、及び、読み出しポート数が4の場合について説明したが、これらは、設計する半導体装置の仕様に応じて、それぞれ所望の値とすることができる。その場合、書き込みアドレス、及び、読み出しアドレスは、ポート数に応じたビット長のアドレスとして構成される。
【0047】
以上、本発明をその好適な実施形態例に基づいて説明したが、本発明のレジスタファイル及びレジスタファイルの設計方法は、上記実施形態例にのみ限定されるものでなく、上記実施形態例の構成から種々の修正及び変更を施したレジスタファイル及びレジスタファイルの設計方法も、本発明の範囲に含まれる。
【0048】
【発明の効果】
以上説明したように、本発明のレジスタファイル及びレジスタファイルの設計方法は、レジスタへの書き込みが行われないときには、優先度付きのセレクタの出力が変動しないため、記憶部にD−FFを使用した場合には、D−FFで発生する無駄な電力の消費を抑えることができる。また、レジスタのデータを読み出す部分の選択回路を、論理回路の組み合わせでハードウェア化されるように設計することで、この部分における無駄な電力の消費を抑えることができる。
【図面の簡単な説明】
【図1】本発明の一実施形態例の半導体装置の構成の一部を示すブロック図。
【図2】図1の選択信号生成部110の構成例の一部詳細を示すブロック図。
【図3】図1のレジスタF0の構成を示すブロック図。
【図4】図3に示すクロックゲート142の、(a)は構成例を示すブロック図、(b)は動作例を示すタイミングチャート。
【図5】図1の選択回路121の構成例を示すブロック図。
【図6】図5に示す選択回路121のHDLによる記述例。
【図7】従来の半導体装置の構成の一部を示すブロック図。
【図8】図7の出力ポート選択部220におけるマルチプレクサMUXの記述例。
【図9】図7の入出力ポート選択部220で使用される4入力−1出力のマルチプレクサの構成例を示すブロック図。
【図10】セルライブラリに記憶される2入力−1出力のマルチプレクサのゲートレベルの回路構成例を示す回路図。
【図11】同期型のD−FFの構成例を示す回路図。
【符号の説明】
110:選択信号生成部
111:アクティブ信号生成回路
120:出力ポート選択部
130:入力ポート選択部
140:記憶部
141:データ記憶部(D−FF)
142:クロックゲート
210:選択信号生成部
220:出力ポート選択部
230:入力ポート選択部
240:記憶部
241:データ記憶部(D−FF)
242:クロックゲート
Claims (6)
- 複数の入力ポートと、複数のレジスタとを備え、各入力ポートから入力するデータを、書き込みアドレスで指定されたレジスタに書き込むレジスタファイルであって、
前記レジスタのそれぞれは、前記入力ポートに対応する論理積回路と該論理積回路の出力の論理和をとる論理和回路とを有する入力ポート選択部と、該入力ポート選択部の出力を記憶する記憶部とを備え、
前記論理積回路のそれぞれは、対応する入力ポートから入力する書き込みデータを書き込むか否かを指定する書き込み指令信号を受信しており、前記書き込みデータと、前記書き込み指令信号と、当該論理積回路に対応する入力ポートよりも優先順位が高い入力ポートに対応する論理積回路に入力する書き込み指令信号の反転信号との論理積をとることを特徴とするレジスタファイル。 - 複数の出力ポートと、該出力ポートに対応して配設される読み出しデータ選択回路とを更に備え、該読み出しデータ選択回路が、各レジスタに対応して配設され各レジスタが記憶する記憶データと指定されたレジスタに対応してアクティブになるアクティブ信号との論理積をとる論理積回路と、該論理積回路の出力の論理和をとる論理和回路とを備える、請求項1に記載のレジスタファイル。
- 前記記憶部は、前記論理和回路の出力をラッチするマスタラッチと、該マスタラッチに後続するスレーブラッチとを有する同期型のD型フリップフロップを備える、請求項1又は2に記載のレジスタファイル。
- 前記書き込み指令信号が、入力ポート毎に指定される書き込みアドレスをレジスタ数に対応した数にデコードした信号と、前記入力ポート毎に書き込み許可又は不許可を指定する書き込み許可信号との論理積に基づいて生成される、請求項1〜3の何れかに記載のレジスタファイル。
- 複数のレジスタと、複数の出力ポートとを備え、各出力ポートが、読み出しアドレスで指定されたレジスタからデータを出力するレジスタファイルであって、
前記出力ポートに対応して配設される読み出しデータ選択回路を備え、該読み出しデータ選択回路が、各レジスタに対応して配設され各レジスタが記憶する記憶データと、指定されたレジスタに対応してアクティブになるアクティブ信号との論理積をとる論理積回路と、該論理積回路の出力の論理和をとる論理和回路とを備えることを特徴とするレジスタファイル。 - 請求項5に記載のレジスタファイルを設計する方法であって、前記読み出しデータ選択回路を、論理和回路と論理積回路との組み合わせでハードウェア化されるように記述することを特徴とするレジスタファイルの設計方法。
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002265521A JP2004102799A (ja) | 2002-09-11 | 2002-09-11 | レジスタファイル及びレジスタファイルの設計方法 |
KR1020030062914A KR100613030B1 (ko) | 2002-09-11 | 2003-09-09 | 레지스터 파일 및 레지스터 파일의 설계 방법 |
GB0321211A GB2394581B (en) | 2002-09-11 | 2003-09-10 | Register file and design method for the same |
TW092125005A TW200414032A (en) | 2002-09-11 | 2003-09-10 | Register file and method for designing a register file |
US10/658,202 US7313768B2 (en) | 2002-09-11 | 2003-09-10 | Register file and method for designing a register file |
CNA031581234A CN1501292A (zh) | 2002-09-11 | 2003-09-11 | 寄存器文件和设计寄存器文件的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002265521A JP2004102799A (ja) | 2002-09-11 | 2002-09-11 | レジスタファイル及びレジスタファイルの設計方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004102799A true JP2004102799A (ja) | 2004-04-02 |
Family
ID=29244339
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002265521A Pending JP2004102799A (ja) | 2002-09-11 | 2002-09-11 | レジスタファイル及びレジスタファイルの設計方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US7313768B2 (ja) |
JP (1) | JP2004102799A (ja) |
KR (1) | KR100613030B1 (ja) |
CN (1) | CN1501292A (ja) |
GB (1) | GB2394581B (ja) |
TW (1) | TW200414032A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007535031A (ja) * | 2004-04-06 | 2007-11-29 | フリースケール セミコンダクター インコーポレイテッド | データ処理システム内における状態保持 |
JP2008530651A (ja) * | 2005-02-08 | 2008-08-07 | エヌエックスピー ビー ヴィ | 高速シフト演算用の低電力レジスタアレイ |
US8847699B2 (en) | 2010-04-30 | 2014-09-30 | Murata Manufacturing Co., Ltd. | Composite component |
US9786350B2 (en) | 2013-03-18 | 2017-10-10 | Semiconductor Energy Laboratory Co., Ltd. | Memory device |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1333356C (zh) * | 2004-07-23 | 2007-08-22 | 中国人民解放军国防科学技术大学 | 写串行化和资源复制相结合的多端口寄存器文件设计方法 |
US8447931B1 (en) * | 2004-08-27 | 2013-05-21 | Oracle America, Inc. | Processor with a register file that supports multiple-issue execution |
US7647481B2 (en) * | 2005-02-25 | 2010-01-12 | Qualcomm Incorporated | Reducing power by shutting down portions of a stacked register file |
US7610571B2 (en) * | 2006-04-14 | 2009-10-27 | Cadence Design Systems, Inc. | Method and system for simulating state retention of an RTL design |
US20110241744A1 (en) * | 2008-08-28 | 2011-10-06 | Aspen Acquisition Corporation | Latch-based implementation of a register file for a multi-threaded processor |
US8583897B2 (en) * | 2009-02-02 | 2013-11-12 | Arm Limited | Register file with circuitry for setting register entries to a predetermined value |
US8331133B2 (en) * | 2009-06-26 | 2012-12-11 | Intel Corporation | Apparatuses for register file with novel bit cell implementation |
CN101620524B (zh) * | 2009-07-03 | 2011-08-10 | 中国人民解放军国防科学技术大学 | 支持矩阵整体读写操作的矩阵寄存器文件 |
US8972961B2 (en) * | 2010-05-19 | 2015-03-03 | International Business Machines Corporation | Instruction scheduling approach to improve processor performance |
CN102176138B (zh) * | 2011-03-01 | 2013-04-03 | 上海维宏电子科技股份有限公司 | 数控系统中硬件端口的对象化管理控制方法 |
WO2014013298A1 (en) | 2012-07-20 | 2014-01-23 | Freescale Semiconductor, Inc. | Register file module and method therefor |
GB2501791B (en) * | 2013-01-24 | 2014-06-11 | Imagination Tech Ltd | Register file having a plurality of sub-register files |
CN108182955B (zh) * | 2018-01-29 | 2020-09-25 | 中国人民解放军国防科技大学 | 一种低延迟写优先级译码电路 |
CN110349604A (zh) | 2018-04-05 | 2019-10-18 | 三星电子株式会社 | 包括多个锁存器的存储器设备和包括该设备的片上系统 |
CN113721979A (zh) * | 2020-05-25 | 2021-11-30 | 北京希姆计算科技有限公司 | 可配置位宽的寄存器电路及方法、解码电路和芯片 |
GB2597077B (en) * | 2020-07-14 | 2022-07-27 | Graphcore Ltd | Clearing register data |
CN113470554B (zh) * | 2021-07-15 | 2023-08-29 | 中科芯集成电路有限公司 | 一种led显示驱动芯片开路检测回读方法 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
SU1128253A1 (ru) | 1982-01-14 | 1984-12-07 | Предприятие П/Я В-2969 | Устройство дл формировани адресов регистровой пам ти |
JPS59106021A (ja) | 1982-12-10 | 1984-06-19 | Oki Electric Ind Co Ltd | バス構成方式 |
JP2950427B2 (ja) | 1989-01-13 | 1999-09-20 | 株式会社東芝 | レジスタバンク回路 |
JPH05206791A (ja) | 1992-01-29 | 1993-08-13 | Nec Ic Microcomput Syst Ltd | D型フリップフロップ |
JP2737607B2 (ja) | 1993-07-15 | 1998-04-08 | 日本電気株式会社 | クロック切替回路 |
JPH07262003A (ja) | 1994-03-18 | 1995-10-13 | Hitachi Ltd | レジスタアクセス制御装置 |
US5657291A (en) * | 1996-04-30 | 1997-08-12 | Sun Microsystems, Inc. | Multiport register file memory cell configuration for read operation |
US5815023A (en) * | 1997-03-20 | 1998-09-29 | Sun Microsystems, Inc. | Unbalanced multiplexer and arbiter combination |
JPH11184674A (ja) * | 1997-12-24 | 1999-07-09 | Fujitsu Ltd | レジスタファイル |
US6188633B1 (en) * | 1998-04-28 | 2001-02-13 | Hewlett-Packard Company | Multi-port computer register file having shared word lines for read and write ports and storage elements that power down or enter a high-impedance state during write operations |
US6654870B1 (en) * | 1999-06-21 | 2003-11-25 | Pts Corporation | Methods and apparatus for establishing port priority functions in a VLIW processor |
US6542391B2 (en) * | 2000-06-08 | 2003-04-01 | Netlogic Microsystems, Inc. | Content addressable memory with configurable class-based storage partition |
US6320813B1 (en) * | 2000-03-02 | 2001-11-20 | Sun Microsystems, Inc. | Decoding of a register file |
US6594714B1 (en) * | 2000-05-01 | 2003-07-15 | Hewlett-Packard Development Company, L.P. | Reconfigurable FIFO interface to support multiple channels in bundled agent configurations |
US6766433B2 (en) * | 2001-09-21 | 2004-07-20 | Freescale Semiconductor, Inc. | System having user programmable addressing modes and method therefor |
US6826110B2 (en) * | 2002-10-17 | 2004-11-30 | International Business Machines Corporation | Cell circuit for multiport memory using decoder |
-
2002
- 2002-09-11 JP JP2002265521A patent/JP2004102799A/ja active Pending
-
2003
- 2003-09-09 KR KR1020030062914A patent/KR100613030B1/ko not_active IP Right Cessation
- 2003-09-10 GB GB0321211A patent/GB2394581B/en not_active Expired - Fee Related
- 2003-09-10 TW TW092125005A patent/TW200414032A/zh unknown
- 2003-09-10 US US10/658,202 patent/US7313768B2/en not_active Expired - Fee Related
- 2003-09-11 CN CNA031581234A patent/CN1501292A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007535031A (ja) * | 2004-04-06 | 2007-11-29 | フリースケール セミコンダクター インコーポレイテッド | データ処理システム内における状態保持 |
JP2008530651A (ja) * | 2005-02-08 | 2008-08-07 | エヌエックスピー ビー ヴィ | 高速シフト演算用の低電力レジスタアレイ |
US8847699B2 (en) | 2010-04-30 | 2014-09-30 | Murata Manufacturing Co., Ltd. | Composite component |
US9786350B2 (en) | 2013-03-18 | 2017-10-10 | Semiconductor Energy Laboratory Co., Ltd. | Memory device |
Also Published As
Publication number | Publication date |
---|---|
GB2394581A (en) | 2004-04-28 |
US20040060015A1 (en) | 2004-03-25 |
TW200414032A (en) | 2004-08-01 |
KR100613030B1 (ko) | 2006-08-16 |
KR20040023762A (ko) | 2004-03-18 |
US7313768B2 (en) | 2007-12-25 |
GB0321211D0 (en) | 2003-10-08 |
CN1501292A (zh) | 2004-06-02 |
GB2394581B (en) | 2005-12-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2004102799A (ja) | レジスタファイル及びレジスタファイルの設計方法 | |
JP2538067B2 (ja) | 条件書き込み手段を有するランダム・アクセス・メモリ回路 | |
US8489863B2 (en) | Processor including age tracking of issue queue instructions | |
US20090141566A1 (en) | Structure for implementing memory array device with built in computation capability | |
US20060171239A1 (en) | Dual Port Memory Unit Using a Single Port Memory Core | |
US9390212B2 (en) | Methods and apparatus for synthesizing multi-port memory circuits | |
US8462533B2 (en) | System for retaining state data | |
JP5985900B2 (ja) | 動作合成装置、動作合成装置を備えたデータ処理システム、及び、動作合成プログラム | |
JP5274069B2 (ja) | 低電力モードにおける漏洩電力削減 | |
JP2017038247A (ja) | 再構成可能な半導体装置 | |
US20090231935A1 (en) | Memory with write port configured for double pump write | |
CN102844742A (zh) | 带有mux-d扫描功能的脉冲动态逻辑门 | |
JP5231949B2 (ja) | 半導体装置、および、半導体装置によるデータ処理方法 | |
JP2000187676A (ja) | 論理合成装置および論理合成プログラムを記録したコンピュータ読み取り可能な記録媒体 | |
Adiga et al. | Modified T-Flip-Flop based scan cell for RAS | |
JP2006293716A (ja) | 半導体記憶装置 | |
JP4471582B2 (ja) | 半導体集積回路及び回路設計装置 | |
US11342922B1 (en) | Direct bi-directional gray code counter | |
JPWO2008026273A1 (ja) | Dmaコントローラ | |
Sheen et al. | Power consumption of a 2's complement adder minimized by effective dynamic data ranges | |
Nair et al. | Comparative analysis of power in Adder using single bit and multi-bit fip-flops, controlled by dynamic hardware control circuit | |
JP2009145957A (ja) | ステートマシン及びこれを用いた半導体集積回路 | |
JP2002328803A (ja) | データ変換装置及びデータ変換方法 | |
Suresh et al. | Synthesizable RAM-alternative to low configuration compiler memory for die area reduction | |
Parajuli | A custom layout of a 8 bit RISC microcontroller |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050803 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070925 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20071001 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071129 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20080303 |