JP2004103012A - プロセッサの動作速度を向上させるキャッシュ構造及びキャッシュ管理方法を有するプロセッサ - Google Patents
プロセッサの動作速度を向上させるキャッシュ構造及びキャッシュ管理方法を有するプロセッサ Download PDFInfo
- Publication number
- JP2004103012A JP2004103012A JP2003304649A JP2003304649A JP2004103012A JP 2004103012 A JP2004103012 A JP 2004103012A JP 2003304649 A JP2003304649 A JP 2003304649A JP 2003304649 A JP2003304649 A JP 2003304649A JP 2004103012 A JP2004103012 A JP 2004103012A
- Authority
- JP
- Japan
- Prior art keywords
- program
- cache memory
- exception
- cache
- processor
- 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
- 238000007726 management method Methods 0.000 title claims abstract description 14
- 230000002708 enhancing effect Effects 0.000 title abstract 2
- 230000015654 memory Effects 0.000 claims abstract description 133
- 238000000034 method Methods 0.000 claims description 8
- 238000010586 diagram Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
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
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0844—Multiple simultaneous or quasi-simultaneous cache accessing
- G06F12/0846—Cache with multiple tag or data arrays being simultaneously accessible
- G06F12/0848—Partitioned cache, e.g. separate instruction and operand caches
-
- 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
Abstract
【解決手段】 キャッシュメモリ及び命令語レジスタを具備し、(a)キャッシュメモリをノーマルプログラム用キャッシュと例外プログラム用キャッシュとに分ける段階と、(b)ノーマルプログラム実行のための命令語及び/またはデータはノーマルプログラム用キャッシュに、例外プログラム実行のための命令語及び/またはデータは例外プログラム用キャッシュに記憶する段階と、(c)プロセッサがノーマルプログラムを実行中なのか例外プログラムを実行中なのかを判断して、ノーマルプログラム用キャッシュと例外プログラム用キャッシュのうちいずれか一つから命令語をフェッチして命令語レジスタに入力する段階とを具備する。
【選択図】 図2
Description
通常、キャッシュメモリ12、14は、メインメモリ16から持ってきた命令語及び/またはデータを記憶する。
その際、プロセッサ10が必要とする命令語及び/又はデータは絶えず変化し、特定の時点で不要な命令語及び/又はデータは1次キャッシュメモリ12から削除することが多い。
本発明が解決しようとする他の技術的課題は、プロセッサの動作速度を向上させるキャッシュ管理方法を提供することである。
プロセッサは、現在実行中のプログラムがノーマルプログラムなのか例外プログラムなのかを判断し、ノーマルプログラム用キャッシュメモリと例外プログラム用キャッシュメモリとのうちいずれか1つから命令語をフェッチして命令語レジスタに入力する。
プロセッサは、所定の制御信号を発するとともに、マルチプレクサも具備するのが望ましい。マルチプレクサは、前記制御信号に従ってノーマルプログラム用キャッシュメモリと例外プログラム用キャッシュメモリとから提供される命令語のうち1つを選択し、前記命令語レジスタに提供する。
本発明と本発明の動作上の利点及び本発明の実施によって達成される目的を十分に理解するためには、本発明の望ましい実施例を例示する添付図面及び添付図面に記載された内容を参照せねばならない。
図2は、本発明の一実施例によるプロセッサのキャッシュ構造を表すブロック図である。これを参照すれば、本発明の一実施例によるプロセッサ20は、キャッシュメモリ22及び24と、マルチプレクサ26と、命令語レジスタ28とを具備する。
割り込み処理ルーチンは、入/出力デバイス要求のようにプロセッサ外部で発生する予期せぬイベントが誘因となって発生する。また、例外処理ルーチンは、演算オーバーフローのようにプロセッサ内部で発生する予期せぬイベントによって引き起こされる。
また、例外プログラム用キャッシュメモリには、ノーマルプログラムでよく使われるサブルーチンが記憶されることもある。例えば、ノーマルプログラムで頻繁に呼び出される‘printf’のようなサブルーチンは、例外プログラムと共に、ノーマルプログラム用キャッシュメモリ22ではなく例外プログラム用キャッシュメモリ24に記憶されることがある。
ノーマルプログラム用キャッシュメモリ22や例外プログラム用キャッシュメモリ24に記憶されている命令語は、マルチプレクサ26を通じて命令語レジスタ28に提供される。マルチプレクサ26は、ノーマルプログラム用キャッシュメモリ22と例外プログラム用キャッシュメモリ24が提供する命令語のうち一つを選択し、命令語レジスタ28に提供する。
命令語レジスタ28は現在実行中の命令の内容を記憶するレジスタである。
まず、キャッシュメモリはノーマルプログラム用キャッシュメモリと例外プログラム用キャッシュメモリとに分割される(段階31)。ノーマルプログラム用キャッシュメモリはノーマルプログラム実行用命令語を記憶するためのキャッシュメモリであり、例外プログラム用キャッシュメモリは前述した例外プログラムを実行するための命令語を記憶するためのキャッシュメモリである。
キャッシュルックアップ動作の結果キャッシュミスが発生すると、下位メモリで所望の命令語を検索し、見つかった場合には、前記段階32の判断結果に従って、ノーマルプログラム用キャッシュメモリと例外プログラム用キャッシュメモリとのうちいずれか1つに記憶する(段階35)。
本発明は図面に図示された好適な一実施例を参考として説明された。これは例示的なものに過ぎず、本技術分野の当業者であれば、形や詳細について多様変更が可能であるという点を理解できる。したがって、本発明の真の技術的保護範囲は特許請求の範囲の技術的思想により決まらねばならない。
22、24 キャッシュメモリ
26 マルチプレクサ
28 命令語レジスタ
30 下位メモリ
Claims (13)
- 所定のノーマルプログラム実行のための命令語を記憶するノーマルプログラム用キャッシュメモリと、所定の例外プログラム実行のための命令語を記憶する例外プログラム用キャッシュメモリと、
前記ノーマルプログラム用キャッシュメモリと前記例外プログラム用キャッシュメモリとのうちいずれか1つから命令語をフェッチして記憶する命令語レジスタと、
を具備するプロセッサであって、
現在実行中のプログラムが前記ノーマルプログラムなのか前記例外プログラムなのかを判断し、前記ノーマルプログラム用キャッシュメモリと前記例外プログラム用キャッシュメモリとのうちいずれか1つから命令語をフェッチして、前記命令語レジスタに入力することを特徴とするプロセッサ。 - 前記プロセッサが、
所定の制御信号を発し、さらに、
前記制御信号に従って前記ノーマルプログラム用キャッシュメモリと前記例外プログラム用キャッシュメモリとが提供する命令語のうち1つを選択し、前記命令語レジスタに提供するマルチプレクサを具備することを特徴とする請求項1に記載のプロセッサ。 - 前記所定の制御信号が、前記現在実行中のプログラムの形態に基づいていることを特徴とする請求項2に記載のプロセッサ。
- 前記例外プログラムが、
割り込み処理ルーチンと、
例外処理ルーチンと、
リセット処理ルーチンと、
を含むことを特徴とする請求項1に記載のプロセッサ。 - 前記例外プログラムが、
ノーマルプログラムのための所定のサブルーチンをさらに含むことを特徴とする請求項4に記載のプロセッサ。 - (a)キャッシュメモリをノーマルプログラム用キャッシュメモリと例外プログラム用キャッシュメモリとに分ける段階と、
(b)ノーマルプログラム実行のための命令語及び/又はデータを前記ノーマルプログラム用キャッシュメモリに、例外プログラム実行のための命令語及び/又はデータを前記例外プログラム用キャッシュメモリに記憶する段階と、
(c)現在実行中のプログラムがノーマルプログラムなのか例外プログラムなのかを判断し、前記ノーマルプログラム用キャッシュメモリと前記例外プログラム用キャッシュメモリとのうちいずれか1つから命令語及び/又はデータをフェッチして命令語レジスタに入力する段階と、
を具備することを特徴とするプロセッサのキャッシュメモリ管理方法。 - 前記キャッシュメモリ管理方法において、
(d)キャッシュミスが発生した場合、下位メモリで所望の命令語及び/又はデータを検索し、見つかった場合には、前記ノーマルプログラム用キャッシュメモリと前記例外プログラム用キャッシュメモリとのうちいずれか1つに記憶する段階をさらに具備することを特徴とする請求項6に記載のキャッシュメモリ管理方法。 - 前記例外プログラムが、
割り込み処理ルーチンと、
例外処理ルーチンと、
リセット処理ルーチンと、
を含むことを特徴とする請求項6に記載のキャッシュメモリ管理方法。 - 前記例外プログラムが、
ノーマルプログラムのための所定のサブルーチンをさらに含むことを特徴とする請求項8に記載のプロセッサ。 - プロセッサのキャッシュメモリ管理方法であって、
(a)キャッシュメモリをノーマルプログラム用キャッシュメモリと例外プログラム用キャッシュメモリとに分ける段階と、
(b)現在実行中のプログラムがノーマルプログラムなのか例外プログラムなのかを判断する段階と、
(c)キャッシュルックアップ動作を行って所望の命令語及び/又はデータを見つける段階と、
(d)前記段階(c)の結果キャッシュミスが発生した場合、下位メモリで所望の命令語及び/又はデータを検索し、見つかった場合には、前記ノーマルプログラム用キャッシュメモリと前記例外プログラム用キャッシュメモリとのうちいずれか1つに、段階(b)の判断結果に従って所望の命令語及び/又はデータを記憶する段階と、
をさらに具備することを特徴とする方法。 - 前記段階(c)が、
前記段階(b)において現在実行中のプログラムが前記ノーマルプログラムであると判断すれば前記ノーマルプログラム用キャッシュメモリで、前記例外プログラムであると判断すれば前記例外プログラム用キャッシュメモリで前記キャッシュルックアップ動作を行うことを特徴とする請求項10に記載のプロセッサのキャッシュメモリ管理方法。 - 前記例外プログラムが、
割り込み処理ルーチンと、
例外処理ルーチンと、
リセット処理ルーチンと、
を含むことを特徴とする請求項10に記載のキャッシュメモリ管理方法。 - 前記例外プログラムが、
ノーマルプログラムのための所定のサブルーチンをさらに含むことを特徴とする請求項12に記載のプロセッサのキャッシュメモリ管理方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2002-0054258A KR100486259B1 (ko) | 2002-09-09 | 2002-09-09 | 컴퓨터 시스템의 동작 속도를 향상시키는 캐쉬 구조를 가지는 프로세서 및 캐쉬 관리 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004103012A true JP2004103012A (ja) | 2004-04-02 |
Family
ID=31987337
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003304649A Pending JP2004103012A (ja) | 2002-09-09 | 2003-08-28 | プロセッサの動作速度を向上させるキャッシュ構造及びキャッシュ管理方法を有するプロセッサ |
Country Status (3)
Country | Link |
---|---|
US (1) | US7065612B2 (ja) |
JP (1) | JP2004103012A (ja) |
KR (1) | KR100486259B1 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8255629B2 (en) * | 2009-06-22 | 2012-08-28 | Arm Limited | Method and apparatus with data storage protocols for maintaining consistencies in parallel translation lookaside buffers |
CN102541673A (zh) * | 2010-12-27 | 2012-07-04 | 北京中电华大电子设计有限责任公司 | 一种cpu取指令异常的安全处理方法和电路 |
KR102181715B1 (ko) * | 2019-08-01 | 2020-11-23 | 한상교 | 마이크로프로세서용 미정의된 명령어 예외에 대한 처리 방법 및 상기 마이크로프로세서용 미정의된 명령어 예외에 대한 처리 방법이 적용된 마이크로프로세서 |
KR20210017264A (ko) | 2019-08-07 | 2021-02-17 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작방법 |
CN113938325B (zh) * | 2021-12-16 | 2022-03-18 | 紫光恒越技术有限公司 | 一种处理攻击性流量的方法、装置、电子设备及存储设备 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04350735A (ja) * | 1991-05-29 | 1992-12-04 | Nec Corp | マイクロプロセッサ |
US6341324B1 (en) * | 1995-10-06 | 2002-01-22 | Lsi Logic Corporation | Exception processing in superscalar microprocessor |
US5926841A (en) * | 1996-03-13 | 1999-07-20 | Advanced Micro Devices, Inc. | Segment descriptor cache for a processor |
US6021467A (en) * | 1996-09-12 | 2000-02-01 | International Business Machines Corporation | Apparatus and method for processing multiple cache misses to a single cache line |
US5895487A (en) * | 1996-11-13 | 1999-04-20 | International Business Machines Corporation | Integrated processing and L2 DRAM cache |
US6625693B2 (en) * | 1999-05-04 | 2003-09-23 | Intel Corporation | Fast exception processing |
US6697939B1 (en) * | 2000-01-06 | 2004-02-24 | International Business Machines Corporation | Basic block cache microprocessor with instruction history information |
US6640284B1 (en) * | 2000-05-12 | 2003-10-28 | Nortel Networks Limited | System and method of dynamic online session caching |
JP3973129B2 (ja) * | 2000-07-19 | 2007-09-12 | 株式会社日立製作所 | キャッシュメモリ装置及びそれを用いた中央演算処理装置 |
-
2002
- 2002-09-09 KR KR10-2002-0054258A patent/KR100486259B1/ko active IP Right Grant
-
2003
- 2003-03-25 US US10/396,154 patent/US7065612B2/en not_active Expired - Lifetime
- 2003-08-28 JP JP2003304649A patent/JP2004103012A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
KR20040022646A (ko) | 2004-03-16 |
US7065612B2 (en) | 2006-06-20 |
KR100486259B1 (ko) | 2005-05-03 |
US20040049635A1 (en) | 2004-03-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6295594B1 (en) | Dynamic memory allocation suitable for stride-based prefetching | |
US7461209B2 (en) | Transient cache storage with discard function for disposable data | |
US20100268862A1 (en) | Reconfigurable processor and method of reconfiguring the same | |
US8578136B2 (en) | Apparatus and method for mapping architectural registers to physical registers | |
US11416256B2 (en) | Selectively performing ahead branch prediction based on types of branch instructions | |
US6578065B1 (en) | Multi-threaded processing system and method for scheduling the execution of threads based on data received from a cache memory | |
GB2248327A (en) | Fixed protection key for real storage memory | |
KR20210019584A (ko) | 다중 테이블 분기 타겟 버퍼 | |
US20060149940A1 (en) | Implementation to save and restore processor registers on a context switch | |
JP2002516425A (ja) | デジタルプロセッサ用制御装置 | |
JP3808314B2 (ja) | 長レイテンシ命令に対する命令属性およびステータス情報を示す処理システムおよび方法 | |
JP3973129B2 (ja) | キャッシュメモリ装置及びそれを用いた中央演算処理装置 | |
US6820254B2 (en) | Method and system for optimizing code using an optimizing coprocessor | |
US11436146B2 (en) | Storage control apparatus, processing apparatus, computer system, and storage control method | |
JP2010102623A (ja) | キャッシュメモリ及びその制御方法 | |
US7191319B1 (en) | System and method for preloading cache memory in response to an occurrence of a context switch | |
JP2004103012A (ja) | プロセッサの動作速度を向上させるキャッシュ構造及びキャッシュ管理方法を有するプロセッサ | |
US20040243765A1 (en) | Multithreaded processor with multiple caches | |
US6862675B1 (en) | Microprocessor and device including memory units with different physical addresses | |
US20040148464A1 (en) | Cache memory device and method of controlling the cache memory device | |
US7028292B1 (en) | Program executing apparatus, control method therefor, and storage medium for interpreting and executing intermediate codes | |
EP0101718B1 (en) | Computer with automatic mapping of memory contents into machine registers | |
US20090217014A1 (en) | Processor, memory device, processing device, and method for processing instruction | |
US11604737B1 (en) | Dynamic modification of coherent atomic memory operations | |
KR20180120669A (ko) | 컴퓨팅 시스템, 이의 구동 방법 및 컴파일 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060803 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070626 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20070926 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20071001 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20071026 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20071031 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20080205 |