JPH05261983A - Character data control device - Google Patents
Character data control deviceInfo
- Publication number
- JPH05261983A JPH05261983A JP4062395A JP6239592A JPH05261983A JP H05261983 A JPH05261983 A JP H05261983A JP 4062395 A JP4062395 A JP 4062395A JP 6239592 A JP6239592 A JP 6239592A JP H05261983 A JPH05261983 A JP H05261983A
- Authority
- JP
- Japan
- Prior art keywords
- font
- processing
- data
- character
- cache
- 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
Landscapes
- Multi Processors (AREA)
- Controls And Circuits For Display Device (AREA)
- Dot-Matrix Printers And Others (AREA)
- Record Information Processing For Printing (AREA)
Abstract
Description
【0001】[0001]
【産業上の利用分野】本発明は、複数のプロセッサによ
り並列処理を行い印字データを出力する文字データ管理
装置に関する。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a character data management device for outputting print data by performing parallel processing by a plurality of processors.
【0002】[0002]
【従来の技術】ワークステーション等の周辺機器として
用いられる印刷装置では、最近、出力装置の解像度に依
存するビットマップ形のフォントから、出力装置の解像
度に依存しない文字輪郭を曲線情報として記述したアウ
トラインフォントが使われてきている。しかし、最終的
には各出力装置で解像度にあった画素データに変換する
処理を行う為、その変換に時間がかかってしまう。特
に、漢字の様な複雑な輪郭を持つフォントに対してはな
おさらである。2. Description of the Related Art Recently, in a printing apparatus used as a peripheral device such as a workstation, an outline in which a character contour which does not depend on the resolution of the output device is described as curve information from a bitmap type font which depends on the resolution of the output device. Fonts are being used. However, finally, since each output device performs a process of converting into pixel data suitable for the resolution, the conversion takes time. This is especially true for fonts with complex contours such as Kanji.
【0003】そこで、プロセッサにより既に画素データ
に処理された変換済みの文字に関しては、その画素デー
タをバスを介してプロセッサに接続されているフォント
キャッシュと呼ばれるメモリに一時的に蓄え、その文字
の出力要求が再び発生した際にその画素データを使用す
る方法が採られている。それにより、印刷の際の処理時
間が短縮可能であるが、フォントキャッシュとして持て
る容量には限界があることから、特定の使用頻度の高い
文字だけをいかに保持しておくかが重要となってくる。
このフォントキャッシュの管理方法として、特開昭64
−88660号及び特開平2−233269号が開示さ
れている。前者はフォントキャシュに登録された文字デ
ータが再び呼び出された時、登録順位の再設定を行ない
登録時期の古いデータとして削除される不都合を防ぐも
のであり、後者は予め使用フォントに削除優先情報を持
たせるものである。Therefore, regarding the converted character which has already been processed into pixel data by the processor, the pixel data is temporarily stored in a memory called a font cache connected to the processor via a bus and the character is output. A method is used in which the pixel data is used when the request is generated again. By doing so, the processing time at the time of printing can be shortened, but since there is a limit to the capacity that can be held as a font cache, it is important how to retain only certain frequently used characters. ..
As a management method of this font cache, Japanese Patent Laid-Open No.
-88660 and JP-A-2-233269 are disclosed. The former is to prevent the inconvenience that the character data registered in the font cache will be deleted as old data at the registration time by resetting the registration order when the character data registered in the font is recalled again. It is something to have.
【0004】しかし、フォントキャッシュを最大に効率
良く利用しても、単一プロセッサでの装置では高速化に
やはり限界が生じてしまう。However, even if the font cache is used with maximum efficiency, the speedup is still limited in a device with a single processor.
【0005】そこで、複数のプロセッサをバス接続し、
複数のプロセッサによる並列処理により、単一プロセッ
サで実現不可能な高速処理を行なわせようとする発想が
生まれてくる。すでにコンピュータシステムでは、複数
のプロセッサにより並列処理を行うものが有り、各々の
プロセッサは割り当てられたプロセスの実行に当り、現
在処理中の実行単位の一部をキャッシュメモリに転送す
ることで命令アクセス、データアクセスの高速化を実現
している。Therefore, a plurality of processors are connected to the bus,
Parallel processing by multiple processors gives rise to the idea of performing high-speed processing that cannot be achieved by a single processor. There are already some computer systems that perform parallel processing by a plurality of processors, and each processor executes an assigned process and transfers an instruction unit by transferring a part of the execution unit currently being processed to a cache memory. Achieves faster data access.
【0006】[0006]
【発明が解決しようとする課題】それに対し、印刷装置
では、前述のようにアウトラインフォントから文字デー
タに変換する処理を必要とし、前者のコンピュータシス
テムのような只単に実行プロセスのプログラムをキャッ
シュメモリに転送をすればよいと云うわけにはいかず、
フォントキャッシュへの書き込みに費やされる時間は遥
かに大きくなる。従って、印刷装置では、なるべくアウ
トラインフォントから文字データへの変換処理を行わ
ず、しかもフォントキャッシュの内容を使用頻度の高い
データで満たしておくことが必要となる。On the other hand, in the printing apparatus, the process of converting the outline font into the character data is required as described above, and the program of the execution process as in the former computer system is simply stored in the cache memory. I can't say that I should transfer it,
The time spent writing to the font cache is much larger. Therefore, in the printing apparatus, it is necessary to perform conversion processing from outline fonts to character data as little as possible and to fill the contents of the font cache with frequently used data.
【0007】また、個々のプロセッサが各々独自にフォ
ントキャッシュ管理を行うと、あるプロセッサで既に文
字画素データに変換された文字であっても別のプロセッ
サのフォントキャッシュに該文字が登録されていなけれ
ば、再度文字画素データへの変換を行う重複処理が行わ
れ効率的でない。特に、それまで使用頻度の低かったプ
ロセッサに、急に使用文字種の多い実行プロセスが割り
当てられた場合においては、フォントキャッシュの利用
率が著しく低下し処理上のボトルネックとなってしま
う。Further, when each processor independently manages the font cache, even if a character has already been converted into character pixel data by one processor, the character must be registered in the font cache of another processor. , And it is not efficient because the duplication process for converting the character pixel data again is performed. In particular, when an execution process with a large number of used character types is suddenly assigned to a processor that has been infrequently used, the utilization rate of the font cache is significantly reduced, which becomes a bottleneck in processing.
【0008】本発明はこの様な問題に鑑みてなされたも
のであって、その目的とするところは、各プロセッサの
持つフォントキャッシュの内容を同一となし、フォント
キャッシュの利用効率を高め高速文書処理を行う文字デ
ータ管理装置を提供することにある。The present invention has been made in view of such a problem, and an object thereof is to make the contents of the font cache of each processor the same so as to improve the utilization efficiency of the font cache and perform high-speed document processing. It is to provide a character data management device for performing.
【0009】[0009]
【課題を解決するための手段】本発明の文字データ管理
装置は、複数のプロセッサと、該プロセッサから共通に
アクセス可能な共有フォントキャッシュと、前記プロセ
ッサから共通にアクセス可能なアウトラインフォント供
給部と、前記プロセッサ個々にアクセス可能な局所フォ
ントキャッシュとを有し、プロセス実行時の文字の取得
要求に対し、まず局所的フォントキャッシュからの読み
取りを試み、あればこれを読み取り、なければ共有フォ
ントキャッシュからの読み取りを試み、更にない時は、
アウトラインフォント供給部から元データを読み込み文
字画素データを生成し、共有フォントキャッシュに登録
する。A character data management apparatus according to the present invention includes a plurality of processors, a shared font cache commonly accessible from the processors, and an outline font supply unit commonly accessible from the processors. The processor has a local font cache accessible to each processor, and in response to a character acquisition request at the time of process execution, first tries to read from the local font cache. If it is read, if not, from the shared font cache. Attempt to read, and when there is no more,
The original data is read from the outline font supply unit to generate character pixel data and registered in the shared font cache.
【0010】実行時のプロセス終了あるいは休止時に
は、共有フォントキャッシュの内容を局所的フォントキ
ャッシュに転送し、個々のフォントキャッシュの内容を
更新することを特徴とする。It is characterized in that the contents of the shared font cache are transferred to the local font cache and the contents of the individual font caches are updated at the time of termination or suspension of the process at the time of execution.
【0011】[0011]
【作用】本発明によれば、新たな文字画素データの書き
込みは共有キャッシュに対し行われる。プロセス終了あ
るは休止時に共有キャッシュから個々の局部キャッシュ
へデータが転送されるから、局部キャッシュの同一性が
保証できる。According to the present invention, writing of new character pixel data is performed in the shared cache. Since the data is transferred from the shared cache to the individual local caches when the process is terminated or paused, the local caches can be guaranteed to be identical.
【0012】[0012]
【実施例】図1はこの発明の一実施例として挙げた電子
写真方式の印刷装置のブロック構成図である。DESCRIPTION OF THE PREFERRED EMBODIMENTS FIG. 1 is a block diagram of an electrophotographic printer as an embodiment of the present invention.
【0013】印刷装置は、3つの主要な部分から構成さ
れる。すなわち、プリントエンジン11、エンジン制御装
置10および制御回路である。印刷装置の動作は、次の通
りである。制御回路が外部のパーソナルコンピュータ等
の機器に接続されたインターフェース13から、印刷制御
コードを受信する。マイクロプロセッサユニット1によ
り実行される制御処理プログラムがこれを解釈して印刷
画素を生成し、イメージメモリ9に書き込む。エンジン
制御装置10は、この画素データをプリントエンジン11の
動作に同期してエンジン側に転送し印刷処理を行う。The printing device consists of three main parts. That is, the print engine 11, the engine control device 10, and the control circuit. The operation of the printing device is as follows. A control circuit receives a print control code from an interface 13 connected to an external device such as a personal computer. A control processing program executed by the microprocessor unit 1 interprets this to generate a print pixel and writes it in the image memory 9. The engine control device 10 transfers this pixel data to the engine side in synchronism with the operation of the print engine 11 to perform print processing.
【0014】この実施例は、上記の一連の処理の内、制
御回路の文字データ管理方式に関して、本発明の手段を
取り入れたものである。This embodiment incorporates the means of the present invention in the character data management system of the control circuit in the series of processes described above.
【0015】制御回路の構成は次の通りである。複数
(図1では4個)のマイクロプロセッサユニット1が、
バス調停回路15によりグローバルバス3に接続される。
バス調停回路15は、バス調停制御回路12の制御信号に従
い、グローバルバス3に対するマイクロプロセッサユニ
ット1の競合を調停する。グローバルバス3には共有RO
M5、及び共有RAM4が接続される。共有ROM5に
は、本実施例の印刷装置の制御プログラムが書き込まれ
ている。また共有RAM4は、上記制御プログラムの作
業用メモリと、後述するグローバルフォントキャッシュ
および受信データバッファに使用される。The structure of the control circuit is as follows. Multiple (4 in FIG. 1) microprocessor units 1
The bus arbitration circuit 15 connects to the global bus 3.
The bus arbitration circuit 15 arbitrates the competition of the microprocessor unit 1 with respect to the global bus 3 according to the control signal of the bus arbitration control circuit 12. Shared RO for Global Bus 3
M5 and shared RAM4 are connected. A control program for the printing apparatus of this embodiment is written in the shared ROM 5. The shared RAM 4 is used as a work memory for the control program, a global font cache and a received data buffer described later.
【0016】本実施例の印刷装置において、制御コード
の指定によってビットマップ印刷、文字印刷、簡単な図
形印刷が可能である。しかし本実施例の説明の中では簡
単のため、文字印刷の場合についてのみ説明する。In the printing apparatus of this embodiment, bitmap printing, character printing, and simple graphic printing can be performed by designating a control code. However, for the sake of simplicity in the description of the present embodiment, only the case of character printing will be described.
【0017】本実施例の印刷装置は、アウトラインフォ
ントを使用し文字印刷を行なう。使用するアウトライン
フォントの元データは、ハードディスク装置8に予め記
録されている。ハードディスク装置8は、ディスク制御
装置7を介しI/Oプロセッサ6に制御される。また、外
部コンピュータ都のインターフェース13もI/Oプロセ
ッサ6により制御される。I/Oプロセッサ6はグローバ
ルバス3から通信ポートによりアクセスされるため、個
々のマイクロプロセッサユニット1は、独自にI/Oプ
ロセッサ6にアクセス可能である。The printing apparatus of this embodiment prints characters using an outline font. The original data of the outline font to be used is recorded in the hard disk device 8 in advance. The hard disk device 8 is controlled by the I / O processor 6 via the disk control device 7. The interface 13 of the external computer is also controlled by the I / O processor 6. Since the I / O processor 6 is accessed by the communication port from the global bus 3, each microprocessor unit 1 can access the I / O processor 6 independently.
【0018】各マイクロプロセッサユニット1が生成す
る印刷画素は、イメージメモリ9に記録される。イメー
ジメモリ9はデュアルポートメモリによって構成され、
エンジン制御回路10はグローバルバス3の調停とは別の
タイミングで、画素データを読み出し、プリントエンジ
ン11に転送する。The print pixels generated by each microprocessor unit 1 are recorded in the image memory 9. Image memory 9 is composed of dual port memory,
The engine control circuit 10 reads pixel data and transfers it to the print engine 11 at a timing different from the arbitration of the global bus 3.
【0019】一方、各マイクロプロセッサユニット1に
は、それぞれ局所的なフォントキャッシュ2が接続され
る。このフォントキャッシュ2はローカルバス接続され
ており、グローバルバス3を介してアクセスされるメモ
リに比較し、バス調停を必要としないため高速なアクセ
スができる。On the other hand, a local font cache 2 is connected to each microprocessor unit 1. The font cache 2 is connected to the local bus and, compared with the memory accessed via the global bus 3, does not require bus arbitration and thus can be accessed at high speed.
【0020】次に図2を用いて、本実施例で用いるフォ
ントキャッシュ管理方法の動作を説明する。各マイクロ
プロセッサユニット1に局所的に接続されたフォントキ
ャッシュ2には、フォント管理テーブル206及びフォント
データ部201が配置されている。また、共有RAM4の上
に置かれるグローバルフォントキャッシュ領域315に
は、フォント管理テーブル206、フォントデータ部201及
びあふれ領域205が配置される。本実施例においては、
フォント管理テーブル206が6kバイト、フォントデー
タ部201が128kバイト、あふれ領域205が2kバイト
である。Next, the operation of the font cache management method used in this embodiment will be described with reference to FIG. A font management table 206 and a font data section 201 are arranged in the font cache 2 locally connected to each microprocessor unit 1. In the global font cache area 315 placed on the shared RAM 4, a font management table 206, a font data section 201 and an overflow area 205 are arranged. In this embodiment,
The font management table 206 has 6 kbytes, the font data portion 201 has 128 kbytes, and the overflow area 205 has 2 kbytes.
【0021】これら各メモリ上のデータ構造は、局所的
なフォントキャッシュ2においても、共有RAM4上のフ
ォントキャッシュ315においても同様である。図2で
は、簡単のためこれらデータ構造をアドレスバス215、
データバス216によってアクセスする説明図とした。実
際のこれらバスアクセスでは、局所的なメモリアクセス
はマイクロプロセッサユニット1のローカルバスにより
行なわれ、大域的なアクセスはグローバルバス3により
行なわれる。The data structure on each of these memories is the same both in the local font cache 2 and in the font cache 315 on the shared RAM 4. In FIG. 2, these data structures are represented by the address bus 215,
It is an explanatory diagram for accessing by the data bus 216. In these actual bus accesses, local memory access is performed by the local bus of the microprocessor unit 1 and global access is performed by the global bus 3.
【0022】以下これらのデータ構造を個々に説明す
る。Each of these data structures will be described below.
【0023】フォント管理テーブル206は、6バイトの
登録フラグ207、12バイトの文字指定レコード208及び
2バイトのキー209によって構成される構造体の、30
0個からなる一次元配列である。この構造体を図6に示
した。ここで、文字指定レコードは以下の要素からなる
データ構造である。The font management table 206 has a structure of a 6-byte registration flag 207, a 12-byte character designation record 208, and a 2-byte key 209.
It is a one-dimensional array consisting of 0 pieces. This structure is shown in FIG. Here, the character designation record has a data structure including the following elements.
【0024】 但し、書体は、ある文字について、複数の文字デザイン
が行われた場合、文字形状の差を特定する上で使用され
る呼称である。上記データ構造では、この呼称に数値を
割り当てて使用する。また、文字修飾指定は、文字書体
によらず、対象の文字の形状を、斜体文字、白抜き文字
などの操作対象とする指定であり、書体と同様に、上記
データ構造で使用する場合の内部表現は数値化されてい
る。[0024] However, the typeface is a name used to specify a difference in character shape when a plurality of character designs are performed on a certain character. In the above data structure, a numerical value is assigned to this name for use. In addition, the character modification designation is a designation that the shape of the target character is the operation target such as italicized characters and white characters, regardless of the character typeface. The expressions are digitized.
【0025】フォントデータ部201は有限長の連続なア
ドレス配置を持つメモリである。内部は128バイトの
大きさの管理単位メモリ202の集合である。管理単位メ
モリ202は、大きさ126バイトのデータ部204と、大き
さ2バイトの指標部203からなる。指標部203の内容は、
次に続くべき管理単位メモリへの指標である。管理単位
メモリ202は大きさ固定であるため、指標の値から、実
アドレスの値は簡単な演算により求めることができる。
すなわち指標の値をixとしたとき、次に続くべき管理単
位メモリ202の先頭番地は、次式の値addrとして得られ
る。The font data section 201 is a memory having a continuous address arrangement of finite length. The inside is a set of management unit memories 202 having a size of 128 bytes. The management unit memory 202 includes a data part 204 having a size of 126 bytes and an index part 203 having a size of 2 bytes. The content of the indicator section 203 is
It is an index to the next management unit memory. Since the management unit memory 202 has a fixed size, the value of the real address can be obtained from the index value by a simple calculation.
That is, when the index value is ix, the head address of the management unit memory 202 that should be continued next is obtained as the value addr of the following equation.
【0026】 addr = ix × 128 + メモリ201先頭番地 言うまでも無く、値128は管理単位メモリの大きさから
くるもので、この演算は実アドレスへの変換の一例に過
ぎない。管理単位メモリ202の指標部203は、いわゆる連
結ポインタの変形の一つである。Needless to say, the value 128 comes from the size of the management unit memory, and this operation is only an example of conversion to a real address. The index unit 203 of the management unit memory 202 is one of modifications of so-called concatenated pointers.
【0027】実際の文字のイメージデータは、管理単位
メモリ202のデータ部204を副数個使用し格納される。格
納されるデータの内容は、最初の2バイトが使用する管
理単位メモリ202の個数であり、これに続くデータがイ
メージデータである。また全てのイメージデータはラン
レングス圧縮されたデータ列からなる。Actual character image data is stored by using a sub-number of data units 204 of the management unit memory 202. The content of the stored data is the number of management unit memories 202 used by the first two bytes, and the data following this is image data. Further, all the image data consist of a run-length compressed data string.
【0028】周知の様に、メモリ管理手法としては、可
変長のデータ列を、連続したメモリ上に動的に配置する
方法が有る。この方法を使用すると、キャッシュへの登
録・削除を繰り返した後に、不要となったデータ列によ
る、複数個の、大きさの一定でない空き領域が生じる。
このような不要となった断片化したメモリ資源を再配置
し、大きな連続した空き領域を再度作り出すためには、
メモリのブロック移動を含む実行時間のかかる処理を行
う必要が有る。これに対し、本実施例の採用した、固定
長の管理単位メモリを複数利用する手段は、最終端の管
理単位メモリに未使用部分が生じ、メモリ利用率の点で
動的メモリ管理に劣るものである。しかし、管理が単純
であることから、容易にハードウェア化できる他、ソフ
トウェアで管理プログラムを実行しても高速処理ができ
る点で優れている。As is well known, as a memory management method, there is a method of dynamically arranging a variable length data string on a continuous memory. When this method is used, after repeated registration / deletion to / from the cache, a plurality of empty areas having irregular sizes due to unnecessary data strings occur.
In order to reallocate such unnecessary fragmented memory resources and recreate a large continuous free area,
It is necessary to perform processing that takes a long time to execute, including memory block movement. On the other hand, the means for using a plurality of fixed-length management unit memories adopted in the present embodiment is inferior to the dynamic memory management in terms of memory utilization rate because an unused portion occurs in the last-end management unit memory. Is. However, since the management is simple, it can be easily implemented as hardware, and even if the management program is executed by software, high speed processing is excellent.
【0029】あふれ領域205は、連続した2kバイトの
大きさの一次元配列である。The overflow area 205 is a continuous one-dimensional array having a size of 2 kbytes.
【0030】以上の様なフォントデータ部201、フォン
ト管理テーブル206及びあふれ領域205は、いずれもキャ
ッシュ割り当て処理217と呼ぶ一連の処理群によって管
理される。これら処理群には読み出し処理210、書き込
み処理211及び連結解消処理212が含まれる。The font data section 201, font management table 206 and overflow area 205 as described above are all managed by a series of processing groups called cache allocation processing 217. These processing groups include read processing 210, write processing 211, and connection cancellation processing 212.
【0031】次に、キャッシュ割り当て処理217につい
て説明する。Next, the cache allocation processing 217 will be described.
【0032】キャッシュに登録された文字については、
そのイメージデータは、フォントデータ部201内のどれ
かの管理単位メモリ202を先頭に複数個の管理単位メモ
リ202に分割され格納される。このとき先頭となる管理
単位メモリ202については、フォントデータ部201の先頭
から連続して300個の管理単位メモリ202をそれぞれ
使用する。一文字分のデータを複数の管理単位メモリ20
2に記録する場合の最初の管理単位メモリ202指標は、フ
ォント管理テーブル206の構造体の中のキー209によって
指定する。先に述べた様にフォントデータ部201は約1
28kバイトの大きさを持つが、これは管理単位メモリ
202の1024個の集合である。この様な配列の大きさ
の制限があるため本実施例では、1文字あたりのイメー
ジデータは平均430バイト程度である。Regarding the characters registered in the cache,
The image data is divided and stored in a plurality of management unit memories 202 starting from any management unit memory 202 in the font data section 201. At this time, as for the management unit memory 202 at the beginning, 300 management unit memories 202 are continuously used from the beginning of the font data section 201. Data for one character is stored in multiple management unit memories 20
The first management unit memory 202 index when recording in 2 is specified by the key 209 in the structure of the font management table 206. As mentioned above, the font data part 201 is about 1
It has a size of 28k bytes, but this is a management unit memory.
It is a set of 1024 pieces of 202. Due to such a limitation of the size of the array, in the present embodiment, the average image data per character is about 430 bytes.
【0033】次に図5を用いて、文字データ取得の処理
の流れを説明する。Next, the flow of processing for obtaining character data will be described with reference to FIG.
【0034】あるプロセス内で、文字データを取得する
要求が発生した場合、文字データ取得処理501が呼び出
される。ここで要求は、前述したような文字指定レコー
ドによって行なわれる。言うまでもなく、同一文字コー
ドであっても、大きさ、文字種、文字修飾が異なる文字
指定を扱う必要があるためである。When a request for acquiring character data is made in a process, the character data acquisition process 501 is called. Here, the request is made by the character designation record as described above. Needless to say, this is because it is necessary to handle character designations having different sizes, character types, and character modifications even with the same character code.
【0035】文字データ取得処理501の処理手順は、図
8の流れ図の通りである。処理を実行中のマイクロプロ
セッサユニット1はまず局所的なフォント管理テーブル2
06を検索する(S801)。ここで与えられた文字指定レコー
ドと同一の文字指定レコードがフォント管理テーブル20
6に存在すれば、文字データ(文字形状のイメージデー
タ)は局所的なフォントキャッシュに存在する。従っ
て、局所的なフォントキャッシュからの読み出しが実行
される(S802)。The processing procedure of the character data acquisition processing 501 is as shown in the flowchart of FIG. First, the microprocessor unit 1 which is executing the process first has a local font management table 2
Search for 06 (S801). The character management record that is the same as the character management record given here is the font management table 20.
If it exists in 6, the character data (character shape image data) exists in the local font cache. Therefore, the local reading from the font cache is executed (S802).
【0036】しかし、局所的なフォント管理テーブル20
6の検索で該当する文字のデータを検出できなかった場
合は、続いて大域的なフォント管理テーブル206を検索
する(S803)。文字指定レコードと同一の文字指定レコー
ドがフォント管理テーブル206に存在した場合は、大域
的な共有変数であるアクセスカウンタ508の値を+1す
る(S804)。アクセスカウンタ508は48ビット長のカウ
ンタで、システム立ち上げ時にクリアされる。以降クリ
アされず、フォント管理テーブル206で検索対象が検出
された場合文字データ取得処理501によって、またフォ
ント管理テーブル206に新たに登録された要素が有った
場合文字データ登録処理502によって、それぞれ+1さ
れる。本実施例の使用状態では、オーバーフローは発生
しない。アクセスカウンタ508の値は、共有のフォント
管理テーブル206の、検出された要素に対応した登録フ
ラグ207に記録される(S805)。アクセスカウンタ508の値
は、登録、読み出しが行なわれた回数をカウントするた
め、この数が大きい程、最近アクセスされた要素である
と判断できる。However, the local font management table 20
When the data of the corresponding character cannot be detected in the search of 6, the global font management table 206 is searched subsequently (S803). When the same character designation record as the character designation record exists in the font management table 206, the value of the access counter 508 which is a global shared variable is incremented by 1 (S804). The access counter 508 is a 48-bit long counter and is cleared at system startup. Thereafter, if the search target is not detected and the font management table 206 detects a search target, the character data acquisition processing 501, and if there is an element newly registered in the font management table 206, the character data registration processing 502 adds +1 respectively. To be done. In the use state of this embodiment, no overflow occurs. The value of the access counter 508 is recorded in the registration flag 207 corresponding to the detected element in the shared font management table 206 (S805). Since the value of the access counter 508 counts the number of times registration and reading are performed, the larger this number is, the more recently accessed element can be determined.
【0037】続いてフォント管理テーブル206の該当す
る要素のキー209が取り出され(S806),大域的なフォント
キャッシュからの文字データ読み出しが行なわれる(S80
7)。大域的なフォント管理テーブル206で、文字指定レ
コードの一致する要素が検出できなかった場合は、カー
ネルに対し、文字データのハードディスク装置8からの
読み込みを要求する(S808)。Subsequently, the key 209 of the corresponding element of the font management table 206 is taken out (S806), and the character data is read from the global font cache (S80).
7). If the matching element of the character-specified record cannot be detected in the global font management table 206, the kernel is requested to read the character data from the hard disk device 8 (S808).
【0038】これは、I/O処理を伴う。本実施例で
は、I/O処理の間、各マイクロプロセッサユニット1
は、処理結果を待たず現在実行中のプロセスを休止する
(S809)。この時、図3で示す更新処理304が実行され
る。更新処理304は、まず共有RAM4のフォントキャッ
シュ領域への他のマイクロプロセッサユニット1のアク
セスを排他的にロックする。次に大域的なフォント管理
テーブル206と、フォントデータ部201の内容を全て、局
所的なフォント管理テーブル206とフォントデータ部201
に転送する。本実施例においてこの処理時間は約40m
秒である。この処理終了後、共有RAM4上のフォント
キャッシュ領域に対するアクセスの排他制御を解除す
る。This involves I / O processing. In this embodiment, during the I / O processing, each microprocessor unit 1
Suspends the currently executing process without waiting for the processing result
(S809). At this time, the update process 304 shown in FIG. 3 is executed. The update process 304 first exclusively locks the access of the other microprocessor unit 1 to the font cache area of the shared RAM 4. Next, all contents of the global font management table 206 and the font data section 201 are stored in the local font management table 206 and the font data section 201.
Transfer to. In this embodiment, this processing time is about 40 m
Seconds. After this processing ends, exclusive control of access to the font cache area on the shared RAM 4 is released.
【0039】一方、ハードディスク装置8からのアウト
ラインフォントデータの読み込みが終了すると、I/O
プロセッサ6によるI/O終了処理が行なわれる。ま
ず、共有メモリ上のカーネルプログラム動作を示すフラ
グがチェックされ、カーネルプログラムを実行中のマイ
クロプロセッサユニットがあるか検出が行なわれる。On the other hand, when the outline font data has been read from the hard disk device 8, I / O
I / O termination processing is performed by the processor 6. First, a flag indicating the kernel program operation on the shared memory is checked to detect whether there is a microprocessor unit executing the kernel program.
【0040】カーネルプログラムを実行中のマイクロプ
ロセッサユニット1が存在する場合、I/Oプロセッサ6
は、共有メモリ上のI/O終了フラグを真にし、I/O
処理を完了する。カーネルプログラムを実行中のマイク
ロプロセッサユニット1が存在しない場合は、I/Oプ
ロセッサ6は、共有メモリ上のI/O終了フラグを真に
したの後、割り込み制御回路14を用いて、待機中のマイ
クロプロセッサユニット1に割り込み信号を送る。ここ
で、割り込み制御回路14は、待機中のマイクロプロセッ
サユニット1が無い場合、処理を保留しどれかのプロセ
スの実行が休止されるのを待つ。If the microprocessor unit 1 executing the kernel program exists, the I / O processor 6
Sets the I / O end flag on the shared memory to true,
Complete the process. If the microprocessor unit 1 that is executing the kernel program does not exist, the I / O processor 6 sets the I / O end flag on the shared memory to true, and then uses the interrupt control circuit 14 to wait for a wait. Send an interrupt signal to the microprocessor unit 1. Here, when there is no waiting microprocessor unit 1, the interrupt control circuit 14 suspends processing and waits for execution of any process to be suspended.
【0041】カーネルプログラムが実行され、I/Oプ
ロセッサ6の処理の終了が検出された場合、カーネルプ
ログラムは、待機中のマイクロプロセッサユニット1に
対し、割り込みによってプロセス起動を促し、先に休止
したプロセスの再開処理を行なう(S810)。但し、再開さ
れたプロセスが、休止以前と同じマイクロプロセッサユ
ニット1により実行されるとは限らない。When the kernel program is executed and the end of the processing of the I / O processor 6 is detected, the kernel program prompts the waiting microprocessor unit 1 to start the process by an interrupt, and the process that was previously paused. Restart processing is performed (S810). However, the restarted process is not always executed by the same microprocessor unit 1 as before the suspension.
【0042】再開されたプロセスは、カーネルサービス
によりアウトラインフォントの文字データを取得し(S81
1)、文字の形状を現すイメージデータの発生処理を行な
う(S812)。この処理は文字形状の複雑さによるが、本実
施例では40×40画素の大きさの漢字で、平均100
m秒から200m秒程度の処理時間を要する。この後、
プロセスを実行中のマイクロプロセッサユニット1は、
生成された文字のイメージを、文字データ登録処理502
の呼び出しにより、大域的なフォントキャッシュにだけ
登録する(S813)。The restarted process acquires the character data of the outline font by the kernel service (S81
1), generation processing of image data representing the shape of the character is performed (S812). This processing depends on the complexity of the character shape, but in the present embodiment, it is an average of 100 for Chinese characters with a size of 40 × 40 pixels.
A processing time of about msec to 200 msec is required. After this,
The microprocessor unit 1 executing the process
Character data registration processing 502 for the generated character image
Is called to register only in the global font cache (S813).
【0043】以上の様に本実施例においては、局所的な
フォントキャッシュ2は、更新処理304以外で書き込みを
行なわない。局所的なフォントキャッシュ2は、常に読
み出しの対象となるだけである。As described above, in this embodiment, the local font cache 2 does not perform writing except for the updating process 304. The local font cache 2 is always a read target.
【0044】図9は、文字データ登録処理502の処理の
流れ図である。FIG. 9 is a flow chart of the processing of the character data registration processing 502.
【0045】文字データ登録処理502は、文字データ取
得処理501から文字のイメージデータと、文字指定レコ
ード208を引数として呼び出され使用される。登録処理5
02は、テーブル検索処理213を呼び出し(S901)、フォン
ト管理テーブル206の登録フラグ207を検索し、値の最も
小さい要素を取り出す(S902)。このとき、登録フラグ20
7の値が0であれば、その要素は、今までフォント登録
の対象とならなかったか、あるいは削除されたばかりの
要素であると判断する。そこで、登録フラグ207の内容
を16進数のFFFFFFFFFFFFに書き換える。これは現在使
用中であることを示す一時的フラグである。続いて、こ
の要素に対応するキー209の内容を取り出し、キーと文
字のイメージデータを引数に書き込み処理211を実行す
る(S903)。処理結果の戻り値として、あふれ領域エラー
が戻された場合は、何も行なわず、登録処理を終了す
る。この場合、登録処理終了時には、登録フラグ207の
値を、処理前の値に復元する。The character data registration processing 502 is called and used from the character data acquisition processing 501 with the character image data and the character designation record 208 as arguments. Registration process 5
02 calls the table search processing 213 (S901), searches the registration flag 207 of the font management table 206, and extracts the element having the smallest value (S902). At this time, the registration flag 20
If the value of 7 is 0, it is determined that the element has not been the target of font registration until now, or has just been deleted. Therefore, the content of the registration flag 207 is rewritten to hexadecimal FFFFFFFFFFFF. This is a temporary flag indicating that it is currently in use. Then, the contents of the key 209 corresponding to this element are taken out, and the writing process 211 is executed with the image data of the key and the character as arguments (S903). If an overflow area error is returned as the return value of the processing result, nothing is done and the registration processing ends. In this case, when the registration process ends, the value of the registration flag 207 is restored to the value before the process.
【0046】書き込み処理211の戻り値として、書き込
みエラーが戻された場合は、登録処理502は削除処理503
を呼び出す(S904)。この処理の結果、フォントキャッシ
ュシステムのフォントデータ部201には空き領域が生じ
るため、登録処理502は再び、キーとイメージデータを
引数として、書き込み処理211を呼び出す。更に、処理
結果の戻り値として、書き込みエラーが戻された場合
は、同様の処理を繰り返し、登録が完了する。この場合
は、登録処理終了時にアクセスカウンタ508の内容に+
1を行ない(S905)、この値を共有のフォント管理テーブ
ル206の登録フラグ207に書き込む(S906)。When a write error is returned as a return value of the write processing 211, the registration processing 502 is a deletion processing 503.
Is called (S904). As a result of this processing, an empty area is created in the font data part 201 of the font cache system, so the registration processing 502 again calls the write processing 211 with the key and image data as arguments. Furthermore, when a write error is returned as the return value of the processing result, the same processing is repeated and the registration is completed. In this case, the contents of the access counter 508 will be
1 is performed (S905), and this value is written in the registration flag 207 of the shared font management table 206 (S906).
【0047】フォント管理テーブル206の登録フラグ207
を検索し、値の最も小さい要素を取り出したとき(S90
2)、この値が0でなければ、削除処理503を呼び出し(S9
07)、空き領域を確保し、S902以降の処理を行なう。Registration flag 207 of the font management table 206
When the element with the smallest value is retrieved (S90
2) If this value is not 0, delete processing 503 is called (S9
07), secure an empty area, and perform the processing after S902.
【0048】図10は、文字データ削除処理503の処理
の流れ図である。FIG. 10 is a flow chart of processing of the character data deletion processing 503.
【0049】文字データ削除処理503は、テーブル検索
処理213を呼び出し(S1001)、共有のフォント管理テーブ
ル206の登録フラグ207について、0でない最小の要素を
取り出し(S1002)、この要素に対応したキー209の値を得
る(S1003)。次にこのキーの値を引数として、連結解消
処理212を呼び出し(S1004)処理を終了する。図5で示し
たように、文字データ取得処理501、文字データ登録処
理502および文字データ削除処理503から呼び出されるの
は、キャッシュ割り当て処理217の処理群である。The character data deletion processing 503 calls the table search processing 213 (S1001), extracts the smallest non-zero element from the registration flag 207 of the shared font management table 206 (S1002), and the key 209 corresponding to this element. The value of is obtained (S1003). Next, using the value of this key as an argument, the connection release processing 212 is called (S1004) and the processing ends. As shown in FIG. 5, the processing group of the cache allocation processing 217 is called from the character data acquisition processing 501, the character data registration processing 502, and the character data deletion processing 503.
【0050】次に、キャッシュ割り当て処理217の内、
読み出し処理210、書き込み処理211及び連結解消処理21
2についてそれぞれ説明する。Next, of the cache allocation processing 217,
Read process 210, write process 211, and connection release process 21
Each of 2 will be explained.
【0051】読み出し処理210の処理を図11の流れ図
を用いて説明する。The processing of the read processing 210 will be described with reference to the flowchart of FIG.
【0052】読み出し処理210は引数として受け取った
キーを取り出し(S1101)アドレス演算部214を呼び出し(S
1102)、フォントデータ部201の管理単位メモリ202への
ポインタを取得する(S1103)。続いてこのポインタに従
い、文字のイメージデータ格納の先頭となる管理単位メ
モリ202へアクセスする(S1104)。以下連結した管理単位
メモリ202への指標に従い文字のイメージデータを次々
に読み出す(S1105)。既に述べた様に、格納されるデー
タの内容は、最初の2バイトが使用する管理単位メモリ
202の個数であるため、必要な個数の管理単位メモリ202
を連結することができる。また、一連の連結の最終に位
置する管理単位メモリ202の指標部203の内容は−1(1
6進数でFFFF)である。The read process 210 extracts the key received as an argument (S1101) and calls the address calculation unit 214 (S1101).
1102), the pointer to the management unit memory 202 of the font data part 201 is acquired (S1103). Then, according to this pointer, the management unit memory 202, which is the head of the character image data storage, is accessed (S1104). Thereafter, the image data of the character is sequentially read according to the index to the connected management unit memory 202 (S1105). As already mentioned, the contents of the stored data are the management unit memory used by the first 2 bytes.
Since it is the number of 202, the required number of management unit memory 202
Can be connected. Further, the content of the index portion 203 of the management unit memory 202 located at the end of the series of connections is -1 (1
Hexadecimal number FFFF).
【0053】書き込み処理211の処理を図12の流れ図
を用いて説明する。The processing of the write processing 211 will be described with reference to the flowchart of FIG.
【0054】書き込み処理211は、受け取った引数から
キーの値を取り出し(S1201)、この値を引数にアドレス
変換処理214を呼び出す(S1202)。この処理結果として、
イメージデータ書き込みに使用可能な最初の管理単位メ
モリ202の先頭アドレスへのポインタを取得する(S120
3)。次に、書き込み処理211は、この管理単位メモリ202
にアクセスし(S1204)、イメージデータの全データサイ
ズを”管理単位メモリのサイズ−2”で割った整数値
(2バイト)の内容を書き込む。これはデータ格納に必
要な管理単位メモリ202の総数に一致する。次に、この
2バイトのデータに連続して、データ部204の大きさに
至るまでのイメージデータを書き込む(S1205)。もし更
に、イメージデータの残りバイト数があれば、書き込み
処理はこのデータをまずあふれ領域205に書き込み(S120
6)、キャッシュメモリのフォントデータ部201内部で、
未使用の管理単位メモリ202を捜す(S1207)。未使用の管
理単位メモリ202が発見できた場合は、先にアクセスし
た管理単位メモリ202の指標部203に、現在の管理単位メ
モリ202への指標を書き込み、新たな結合を生成する(S1
208)。続いてあふれ領域205から、126バイト(これ
は、管理単位メモリ202のデータ部204のサイズである)
のデータを取り出し、データ部204に書き込む(S1205)。
これを、あふれ領域205の内容が空になるか、未使用の
管理単位メモリ202が無くなるまで繰り返す。あふれ領
域205の残りデータが無くなった場合、書き込み処理は
正常終了する。この場合、最後に使用した管理単位メモ
リ202の指標部203の内容を、結合終了を示す値FFFFに書
き換え、結合の終端を生成する(S1209)。The write processing 211 extracts the key value from the received argument (S1201) and calls the address conversion processing 214 with this value as an argument (S1202). As a result of this processing,
Obtain a pointer to the start address of the first management unit memory 202 that can be used for writing image data (S120
3). Next, the writing process 211 is executed by the management unit memory 202.
Is accessed (S1204), and the contents of the integer value (2 bytes) obtained by dividing the total data size of the image data by "management unit memory size-2" are written. This corresponds to the total number of management unit memories 202 required for data storage. Next, image data up to the size of the data section 204 is written in succession to the 2-byte data (S1205). Further, if there is a remaining number of bytes of the image data, the writing process first writes this data in the overflow area 205 (S120
6), inside the font data section 201 of the cache memory,
The unused management unit memory 202 is searched (S1207). If an unused management unit memory 202 is found, the index for the current management unit memory 202 is written to the index unit 203 of the management unit memory 202 that was accessed first, and a new bond is generated (S1
208). Then 126 bytes from the overflow area 205 (this is the size of the data section 204 of the management unit memory 202)
Data is extracted and written in the data section 204 (S1205).
This is repeated until the contents of the overflow area 205 become empty or there is no unused management unit memory 202. When there is no remaining data in the overflow area 205, the writing process ends normally. In this case, the contents of the index part 203 of the last-used management unit memory 202 are rewritten to the value FFFF indicating the end of the connection, and the end of the connection is generated (S1209).
【0055】一方、未使用の管理単位メモリ202が必要
な数だけ検出できず、あふれ領域205にイメージデータ
が残っている場合は、書き込み処理211は、呼び出し側
の処理に書き込みエラーを返し(S1210)処理を中止す
る。この場合、不要な文字のデータをフォントキャッシ
ュメモリのフォントデータ部201から取り除き、空き領
域を広げ、再度書き込み処理211を呼び出す必要がある
が、この処理は、上位処理である呼び出し側(文字デー
タ登録処理502)において判断、実行される。On the other hand, if the unused management unit memory 202 cannot be detected by the required number and the image data remains in the overflow area 205, the write processing 211 returns a write error to the processing of the calling side (S1210). ) Stop processing. In this case, it is necessary to remove unnecessary character data from the font data section 201 of the font cache memory, expand the free space, and call the write processing 211 again. This processing is performed by the calling side (character data registration It is determined and executed in process 502).
【0056】あふれ領域205は、1文字のデータには充
分大きな容量を持つ連続したアドレスのメモリ領域であ
るが、もしあふれ領域205に入りきらない大きさの文字
のイメージデータが渡された場合は、書き込み処理211
はあふれ領域エラーを返し(S1211)処理を中止する。こ
の場合、この文字のイメージデータはフォントキャッシ
ュに登録されない。なぜなら、特に大きなイメージデー
タを持つ文字は、発生頻度が極めて低いため、キャッシ
ュに登録しても、システムの処理速度改善に寄与しない
ためである。The overflow area 205 is a memory area of consecutive addresses having a sufficiently large capacity for one character data. However, if image data of a character having a size that does not fit in the overflow area 205 is passed, , Write process 211
Returns an overflow area error (S1211) and terminates processing. In this case, the image data of this character is not registered in the font cache. This is because the characters having particularly large image data have an extremely low occurrence frequency, and even if they are registered in the cache, they do not contribute to the improvement of the processing speed of the system.
【0057】連結解消処理212の処理を図13の流れ図
を用いて説明する。The processing of the connection cancellation processing 212 will be described with reference to the flowchart of FIG.
【0058】データの削除された管理単位メモリ202、
あるいはデータの空白な管理単位メモリ202は、指標部2
03の値が0であることによって他の管理単位メモリ202
から区別される。連結解消処理212は、引数から管理単
位メモリ202への指標の値であるキーを取得し、さらに
アドレス変換処理214の呼び出しを行なう(S1301)。アド
レス変換処理214は、キー値を演算により実アドレスに
変換し、削除対象となる文字データの記録されている最
初の管理単位メモリ202を指し示すポインタを発生する
(S1302)。以下、連結解消処理212は、このポインタが示
す管理単位メモリ202の指標部203から次の管理単位メモ
リ202の先頭番地の実アドレスを計算し、後に続く指標
部203の内容を次々に0000で置き換える(S1304)。この操
作を管理単位メモリ202の連結が続く限り、指標部203の
内容が(16進数で)FFFFである管理単位メモリ202に
至るまで繰り返す。このあと、連結の最終の管理単位メ
モリ202の指標部203の内容を、(16進数で)FFFFから
0000に書き換える(S1305)。Management unit memory 202 from which data has been deleted,
Alternatively, the management unit memory 202 in which the data is blank is the index unit 2
Since the value of 03 is 0, the other management unit memory 202
Distinguished from. The connection cancellation processing 212 acquires a key that is the value of the index to the management unit memory 202 from the argument, and further calls the address conversion processing 214 (S1301). The address conversion processing 214 converts the key value into a real address by calculation, and generates a pointer that points to the first management unit memory 202 in which the character data to be deleted is recorded.
(S1302). Hereinafter, the connection cancellation processing 212 calculates the real address of the head address of the next management unit memory 202 from the index unit 203 of the management unit memory 202 indicated by this pointer, and replaces the contents of the subsequent index unit 203 with 0000 one after another. (S1304). As long as the connection of the management unit memories 202 continues, this operation is repeated until the contents of the index portion 203 reach the management unit memory 202 (hexadecimal number) FFFF. After this, the contents of the index part 203 of the final management unit memory 202 of the connection are changed from FFFF (in hexadecimal notation).
Rewrite to 0000 (S1305).
【0059】以上で、本実施例が使用したフォントキャ
ッシュ内のデータへのアクセス手段の説明を終わる。This is the end of the description of the means for accessing the data in the font cache used in this embodiment.
【0060】フォント管理機構が使用するフォントキャ
ッシュメモリ管理方法として、いくつか公知の方法が存
在する。基本的にフォントキャッシュメモリは、有限長
のメモリ割り当てであり、新たに文字のイメージデータ
を登録しようとし、メモリの空きスペースが確保できな
い場合は、現在の登録を更新する。すなわち、キャッシ
ュ領域から、不要なデータ(ここではどれかの文字のイ
メージデータ)を削除し、新規のデータを登録する。管
理方法として重要なのは、必要なデータを残し、不要な
データを削除することである。しかし、将来どのような
文字データに対する要求が発生するかを予測する理想的
な方法が無いため、何らかの基準に従い不要なデータを
決めることになる。この決定が適切であれば、要求文字
のデータが、キャッシュ領域に存在する確率(ヒット
率)が向上し、処理速度の向上につながる。不要なデー
タを決める代表的な管理方法は以下の4つである。As a font cache memory management method used by the font management mechanism, there are some known methods. The font cache memory is basically a memory allocation of a finite length, and when new image data of a character is to be registered and the free space in the memory cannot be secured, the current registration is updated. That is, unnecessary data (image data of any character here) is deleted from the cache area, and new data is registered. The important management method is to retain the necessary data and delete unnecessary data. However, since there is no ideal method for predicting what kind of character data will be requested in the future, unnecessary data will be determined according to some standard. If this determination is appropriate, the probability that the requested character data will exist in the cache area (hit rate) will improve, leading to an improvement in processing speed. There are the following four typical management methods for determining unnecessary data.
【0061】方法1:現在のデータ群の中で、最も初期
に登録されたデータが不要と判断される。いわゆるFirs
t In First Out(FIFO)の方法。Method 1: It is determined that the earliest registered data in the current data group is unnecessary. So-called Firs
t In First Out (FIFO) method.
【0062】方法2:現在のデータ群の中で、最も長い
期間使用されなかったデータが不要と判断される。いわ
ゆるLeast Recently Used(LRU)の方法。Method 2: It is judged that the data which has not been used for the longest period in the current data group is unnecessary. The so-called Least Recently Used (LRU) method.
【0063】方法3:現在のデータ群の中で、最も長い
期間使用されなかったデータはむしろ次に使用され、最
近使用されたデータが不要と判断される方法。Method 3: A method in which the data that has not been used for the longest period is used next rather than the data that has been used most recently in the current data group, and the recently used data is determined to be unnecessary.
【0064】方法4:現在のデータ群の中で、最も使用
頻度の低いデータが不要と判断される。いわゆるLeast
Frequently Used(LFU)の方法。Method 4: It is determined that the least frequently used data in the current data group is unnecessary. So-called Least
Frequently Used (LFU) method.
【0065】従来方法の内、例えば特開昭64−886
60”フォントキャッシュ制御方式”は方法1に対し方
法3の改善を行った方法を用いている。また特開平2−
202464”印刷装置”は方法1を用いている。Among the conventional methods, for example, Japanese Patent Laid-Open No. 64-886.
The 60 "font cache control method" uses a method obtained by improving the method 3 with respect to the method 1. In addition, JP-A-2-
202464 "Printer" uses Method 1.
【0066】これら管理方式は、単一のフォント管理機
構に対し、単一のフォントキャッシュメモリを使用する
構成に対し発明された方法である。本発明の様な(バス
共有による)密結合のマルチマイクロプロセッサ方式で
は、各フォントキャッシュのデータ一致を確立するた
め、ローカルなフォントキャッシュと、共有されたフォ
ントキャッシュの管理が個々に行なわれる必要がある。These management schemes are methods invented for configurations that use a single font cache memory for a single font management mechanism. In the tightly coupled multi-microprocessor system (by bus sharing) as in the present invention, in order to establish the data coincidence of each font cache, it is necessary to manage the local font cache and the shared font cache individually. is there.
【0067】本実施例は、キャッシュの局所的な管理に
おいてはLeast Recently Used(LRU)の方法を用いた。In this embodiment, the Least Recently Used (LRU) method is used in the local management of the cache.
【0068】各マイクロプロセッサユニット1の並列実
行は、割り込み制御回路14の発生する割り込み信号によ
って制御される。以下図3の説明図と図4の状態遷移図
を用いて、これを説明する。The parallel execution of each microprocessor unit 1 is controlled by an interrupt signal generated by the interrupt control circuit 14. This will be described below with reference to the explanatory diagram of FIG. 3 and the state transition diagram of FIG.
【0069】本実施例の印刷装置制御回路において実行
されるプログラムは、複数のマイクロプロセッサユニッ
ト1により並列実行される。この時、個々のプロセッサ
の実行単位をプロセスと呼ぶ。プロセスは、プロセスヘ
ッダ、プログラムオブジェクト、作業領域から構成され
る。プロセスヘッダには、プロセスが(中断後の再開を
含め)開始される場合のプログラムカウンタの値、スタ
ックポインタの値、プロセッサの各レジスタの値、メモ
リサイズ、メモリ管理情報及びプロセス固有の管理情報
が含まれる。プロセスのオブジェクト部分は実行可能な
プログラムコードが含まれる。また、プロセスの作業領
域は、プロセス内の変数、スタック等に割り当てられ
る。実行時にはプロセスの実体は主記憶領域に配置され
る。本実施例では、共有RAM4に図3に示す様なメモ
リ空間300をとり、ここにプロセス303、308、309等を配
置する。プロセスはプログラム実行中にカーネルに対す
るプロセス生成要求で生成され、終了により消失するの
で、実行時のプロセスの個数は不定である。The program executed in the printing apparatus control circuit of this embodiment is executed in parallel by the plurality of microprocessor units 1. At this time, the execution unit of each processor is called a process. A process is composed of a process header, a program object, and a work area. The process header contains the program counter value, stack pointer value, processor register value, memory size, memory management information, and process-specific management information when the process is started (including restart after interruption). included. The object part of the process contains the executable program code. The work area of the process is assigned to variables, stacks, etc. in the process. At the time of execution, the substance of the process is placed in the main storage area. In this embodiment, the shared RAM 4 has a memory space 300 as shown in FIG. 3, and processes 303, 308, 309, etc. are arranged therein. The number of processes at the time of execution is indefinite because a process is created by a process creation request to the kernel during program execution and disappears upon termination.
【0070】本実施例の使用する各マイクロプロセッサ
ユニット1は、幾つかの”例外処理ベクタ”と呼ばれる
特定アドレスへのジャンプ機構を持っている。これら
は、例えば”割り込み処理が行なわれた場合ジャンプす
べきベクタ”、あるいは”リセット後にジャンプすべき
ベクタ”などである。電源投入直後全てのマイクロプロ
セッサユニット1は、リセット後のベクタで指定された
特定のアドレスの命令語を実行する。本実施例の場合、
この命令語は無限ループを生成し、各マイクロプロセッ
サユニットの処理は待機状態となる。図3の説明図上の
メモリ空間300に配置された領域301は、この無限ループ
が含まれる領域である。以下これを待機ルーチン301と
呼ぶ。Each microprocessor unit 1 used in this embodiment has a jump mechanism to a specific address called some "exception processing vector". These are, for example, "vector to jump to when interrupt processing is performed" or "vector to jump after reset". Immediately after the power is turned on, all the microprocessor units 1 execute the instruction word of the specific address designated by the vector after reset. In the case of this embodiment,
This instruction word creates an infinite loop, and the processing of each microprocessor unit is in a standby state. An area 301 arranged in the memory space 300 on the explanatory view of FIG. 3 is an area including this infinite loop. Hereinafter, this is called a standby routine 301.
【0071】次に、割り込み制御回路14が、どれか一
つのマイクロプロセッサユニット1を選び、割り込み信
号を発生する。割り込みは、割り込み時のジャンプ先ア
ドレスを指定し行なわれる。この割り込みによってマイ
クロプロセッサユニット1のプログラムカウンタは、無
限ループの外の値に書き換えられる。ここではまず割り
込みディスパッチテーブルのカーネル領域へのジャンプ
命令を含むアドレスが指定され、ディスパッチルーチン
302へのジャンプが発生する。この結果、4個有るマイ
クロプロセッサユニット1の内のどれか一つは、カーネ
ルの処理306を開始する。Next, the interrupt control circuit 14 selects one of the microprocessor units 1 and generates an interrupt signal. The interrupt is performed by designating the jump destination address at the time of the interrupt. The interrupt causes the program counter of the microprocessor unit 1 to be rewritten to a value outside the infinite loop. Here, the address including the jump instruction to the kernel area of the interrupt dispatch table is specified first, and the dispatch routine
Jump to 302 occurs. As a result, one of the four microprocessor units 1 starts the kernel process 306.
【0072】カーネル処理306の動作は、図7の流れ図
に示される。カーネル処理306は、割り込みによってそ
の処理が開始されると直ちに、割り込みの発生時の要求
がI/O終了処理であるか判断する(S701)。この判断が
真であれば、I/O終了処理(S702)が実施される。S701
の判断が真でない場合およびS702の処理が終了した場合
は、待ち行列に処理要求があるか調べS703、処理要求が
有れば、要求内容を処理する(S704)。次にI/Oプロセ
ッサの処理状態を取得し(S705)、完了したI/O処理が
あれば、S701以降を繰り返す。待ち行列内の全ての処理
要求を処理したときは、判断S703が偽となり、処理を終
了し待機ルーチン301に戻る。The operation of kernel process 306 is shown in the flow chart of FIG. Immediately after the processing is started by the interrupt, the kernel processing 306 determines whether the request at the time of the interrupt is the I / O end processing (S701). If this determination is true, I / O termination processing (S702) is executed. S701
If the determination is not true and the process of S702 is finished, it is checked whether there is a processing request in the queue S703, and if there is a processing request, the request content is processed (S704). Next, the processing status of the I / O processor is acquired (S705), and if there is completed I / O processing, S701 and subsequent steps are repeated. When all the processing requests in the queue have been processed, the determination S703 becomes false, the processing ends, and the process returns to the waiting routine 301.
【0073】カーネル処理を実行するマイクロプロセッ
サユニット1は、起動後最初の1回は、印刷処理プログ
ラムの開始プロセスの実行を割り当てる。具体的には、
プロセスの開始アドレスの値をディスパッチテーブルに
書き込み、割り込み制御回路14を使用し他のマイクロプ
ロセッサユニット1に割り込みを発生する。割り込み制
御回路14には、マイクロプロセッサユニット1の動作状
態を示すフラグ16が有り、待機ルーチン301にあるマイ
クロプロセッサユニット1についてはこのフラグの対応
するビットの値が1である。従って割り込み制御回路14
はこのフラグの値の監視により、待機中のマイクロプロ
セッサユニット1を特定し、これに割り込み信号を送
る。既にカーネルで動作中の他のマイクロプロセッサユ
ニット1によって、ディスパッチテーブルにジャンプ先
アドレスが書き込まれているため、ここで割り込み信号
が入力されたマイクロプロセッサユニット1のプログラ
ムカウンタは、指定アドレスに変更される。The microprocessor unit 1 for executing the kernel processing allocates the execution of the start process of the print processing program at the first time after starting. In particular,
The value of the process start address is written in the dispatch table, and the interrupt control circuit 14 is used to generate an interrupt to another microprocessor unit 1. The interrupt control circuit 14 has a flag 16 indicating the operating state of the microprocessor unit 1. For the microprocessor unit 1 in the standby routine 301, the value of the corresponding bit of this flag is 1. Therefore, the interrupt control circuit 14
Monitors the value of this flag to identify the waiting microprocessor unit 1 and sends an interrupt signal to it. Since the jump destination address has been written in the dispatch table by another microprocessor unit 1 that is already operating in the kernel, the program counter of the microprocessor unit 1 to which the interrupt signal is input is changed to the specified address. ..
【0074】この結果、最初の印刷処理プログラムの起
動が行なわれると、後はこの印刷処理プログラムの処理
の流れに従い、全ての動作が行なわれる。印刷処理プロ
グラムは、インターフェース13を介し外部コンピュータ
から印刷制御コードを受信するプロセスを生成し、印刷
制御コードを受け取り印刷処理を行なう。この途中で、
文字形状発生、印刷画素の並べ換え、エンジン制御装置
10へのデータ完了信号の転送などが行なわれる。As a result, when the first print processing program is started, thereafter, all the operations are performed according to the processing flow of this print processing program. The print processing program generates a process for receiving a print control code from an external computer via the interface 13, receives the print control code, and performs print processing. In the middle of this
Character shape generation, print pixel rearrangement, engine control device
The data completion signal is transferred to 10.
【0075】本実施例の制御回路が、マルチマイクロプ
ロセッサ構成であることから、ここに述べた様な個々の
処理にはそれぞれ独立の実行単位であるプロセスが割り
当てられる。特に、文字発生に関しては、改行コードの
入力が有る毎にプロセスの生成を行なう。一方で、この
文字発生のプロセスは、改行コードまでの、一連の文字
発生を全て行なうと、処理終了となり、プロセス終了要
求をカーネルの要求待ち行列にエンキュウする(待ち行
列に要素を追加する場合をエンキュウ、要素が除かれる
場合をデキュウと書く)。カーネルはこの要求があると
対象のプロセスをメモリ空間300から取り除き廃棄する
ので、プロセスの数は高々数十個である。 図3の説明
図では、ある時間のメモリ空間とプログラム実行の状態
の例を挙げている。メモリ空間300には、この場合3つ
のプロセス303、308、309と、ディスパッチルーチン30
2、カーネルへの要求発生処理305、カーネル処理306、
I/O処理307及び更新処理304が存在する。メモリ空間
にはこの他に、大域的な(共有の)フォントキャッシュ
の領域315、インターフェースからの受信データを保存
するバッファ316が配置される。また、図3において右
向きの矢印は実行時間の推移を示し、下向きの矢印はメ
モリ配置上の上位アドレス方向を示す。さらに折れ線31
1、312、313はそれぞれマイクロプロセッサユニット1の
実行時のプログラムカウンタの値の変化を示す。Since the control circuit of the present embodiment has a multi-microprocessor structure, each process as described here is assigned a process as an independent execution unit. In particular, regarding character generation, a process is generated each time a line feed code is input. On the other hand, this character generation process ends when all the character generation up to the line feed code is completed, and the process termination request is enqueued to the kernel request queue (when adding an element to the queue, Enkyu, when the element is removed is written as Dekyu). When the kernel makes this request, the target process is removed from the memory space 300 and discarded, so the number of processes is at most several tens. In the explanatory view of FIG. 3, an example of a memory space and a program execution state at a certain time is given. In the memory space 300, in this case, three processes 303, 308, 309 and a dispatch routine 30
2, request generation process 305 to kernel, kernel process 306,
There are I / O processing 307 and update processing 304. In addition to this, a global (shared) area 315 of a font cache and a buffer 316 for storing data received from the interface are arranged in the memory space. Further, in FIG. 3, the arrow pointing to the right indicates the transition of the execution time, and the arrow pointing downward indicates the direction of the upper address in the memory arrangement. Polyline 31
Reference numerals 1, 312 and 313 respectively represent changes in the value of the program counter during execution of the microprocessor unit 1.
【0076】この実施例において本発明の主な動作を実
現するのは更新処理304である。以下例を挙げこれを説
明する。既に実行中のプロセス303を処理しているマイ
クロプロセッサユニット1が、新たなプロセスを生成し
ようとする場合、プロセス生成要求をカーネルに対し行
なう。この要求は要求発生処理305を呼び出して行なわ
れる。折れ線312は、このためプログラムカウンタが一
時的に要求処理305の位置に書き変わることを示してい
る。矢印Aの位置でプロセス生成要求を行なう。この要
求は、カーネルに対する要求待ち行列にエンキュウされ
る。カーネル処理306は別のマイクロプロセッサユニッ
ト1により実行されている。カーネル処理306(折れ線31
3で示す)はこの要求を取り出し、新たにプロセス308を
生成し、その実行開始番地をディスパッチルーチン302
内にあるディスパッチテーブルに書き込む。The updating process 304 realizes the main operation of the present invention in this embodiment. This will be described below with an example. When the microprocessor unit 1 that is processing the process 303 that is already executing attempts to create a new process, it makes a process creation request to the kernel. This request is made by calling the request generation process 305. Line 312 indicates that this causes the program counter to temporarily rewrite to the request processing 305 location. A process generation request is made at the position of arrow A. This request is enqueued in the request queue for the kernel. The kernel process 306 is executed by another microprocessor unit 1. Kernel processing 306 (Line 31
(Indicated by 3) takes this request, creates a new process 308, and assigns its execution start address to the dispatch routine 302.
Write to the dispatch table inside.
【0077】カーネル処理306を実行中のマイクロプロ
セッサユニット1は次に割り込み制御回路14を用い、
現在待機中の別のマイクロプロセッサユニット1を特定
し、割り込み信号を送る。折れ線311はこの結果プロセ
ス308を実行するマイクロプロセッサユニット1のプログ
ラムカウンタの軌跡を示している。このマイクロプロセ
ッサユニット1は、割り込みを受けまずディスパッチル
ーチン302へジャンプし、プロセス308の実行開始アドレ
スにジャンプする。The microprocessor unit 1 executing the kernel processing 306 next uses the interrupt control circuit 14,
Identify another microprocessor unit 1 that is currently waiting and send an interrupt signal. The polygonal line 311 shows the locus of the program counter of the microprocessor unit 1 which executes the resulting process 308. The microprocessor unit 1 does not receive an interrupt and jumps to the dispatch routine 302 and then to the execution start address of the process 308.
【0078】上記処理において待機中のマイクロプロセ
ッサユニット1が無い場合、カーネル処理は、待機状態
になるマイクロプロセッサユニット1が発生した時点
で、割り込み発生しプロセス実行を割り当てる。In the above processing, when there is no waiting microprocessor unit 1, the kernel processing allocates the process execution by generating an interrupt when the microprocessor unit 1 in the waiting state occurs.
【0079】一方、先に折れ線312で示される処理を実
行しているマイクロプロセッサユニット1は、この例で
は次にI/O処理要求を発生する。既に図8の流れ図に
おいて説明したように、文字データをハードディスク装
置8から読み込む場合等が、この処理を伴う。このため
プログラムカウンタの軌跡である折れ線312は、再び要
求発生処理305に一時的に書き換えられる。On the other hand, the microprocessor unit 1 which has previously executed the processing indicated by the broken line 312, in this example, next issues an I / O processing request. As already described in the flowchart of FIG. 8, this processing is involved when reading character data from the hard disk device 8. Therefore, the polygonal line 312, which is the locus of the program counter, is temporarily rewritten by the request generation process 305 again.
【0080】本実施例において、全てのプロセスはI/
O処理に入るとプロセスの処理の継続を一旦中止し、待
機状態に戻る。これによってカーネルは、待機状態に入
ったマイクロプロセッサユニット1を、別のプロセスの
実行に割り当てることができる。なぜなら、I/O処理
は多くの場合数ミリ秒程度の待ちを生じるため、この
間、あるプロセッサがプロセス内で処理を継続するよ
り、他のプロセスに実行を移す方がプロセッサ資源の効
率的な使用にとり有利だからである。In this embodiment, all processes are I /
When the O processing is started, the continuation of the processing of the process is once stopped and the processing returns to the standby state. This allows the kernel to allocate the waiting microprocessor unit 1 for execution of another process. Because I / O processing often waits in the order of a few milliseconds, it is more efficient to use the processor resources by transferring the execution to another process rather than continuing the processing within the process by one processor. This is because it is advantageous to
【0081】全てのプロセスは、上記の様にプロセスを
中断する場合、及びプロセスが終了した場合に、更新処
理304を実行する。更新処理304の処理内容は、プロセス
中断の場合は、プロセスの現在の状態を記録し、マイク
ロプロセッサユニット1の局所的なフォントキャッシュ2
の内容を更新することである。これは既に述べたよう
に、共有メモリ上のフォントキャッシュ315から、フォ
ント管理テーブル206とフォントデータ部201の内容を読
み出し、局所的なフォントキャッシュ2へ転送すること
で実現される。All processes execute the update process 304 when the process is interrupted as described above and when the process is completed. In the case of process interruption, the content of the update process 304 records the current state of the process, and the local font cache 2 of the microprocessor unit 1 is recorded.
Is to update the contents of. This is realized by reading the contents of the font management table 206 and the font data unit 201 from the font cache 315 on the shared memory and transferring them to the local font cache 2 as described above.
【0082】また、プロセス終了の場合は、更新処理30
4の処理内容は、プロセスの使用したメモリを開放し、
以下は同様にマイクロプロセッサユニット1の局所的な
フォントキャッシュ2の内容を更新することである。When the process ends, the update process 30
The processing content of 4 releases the memory used by the process,
The following is to similarly update the contents of the local font cache 2 of the microprocessor unit 1.
【0083】プログラムカウンタの軌跡である折れ線31
2は、矢印Bの位置で更新処理304を実行している様子を
示す。このマイクロプロセッサユニット1は、その後プ
ロセスを休止し待機ルーチン301の実行に戻る(図8のS
809を見よ)。この時、割り込み制御回路14のフラグ16
のこのマイクロプロセッサユニットに該当するビットの
値を1とし、待機状態に入ることを記録する。A polygonal line 31 which is the locus of the program counter
2 shows how the update process 304 is executed at the position of arrow B. The microprocessor unit 1 then pauses the process and returns to the execution of the waiting routine 301 (S in FIG. 8).
See 809). At this time, the flag 16 of the interrupt control circuit 14
The value of the bit corresponding to this microprocessor unit of 1 is set to 1 and the entry into the standby state is recorded.
【0084】一方、I/Oプロセッサ6によりI/O処
理が終了すると、割り込み制御回路14によって待機中の
マイクロプロセッサユニット1に割り込み信号が送られ
る。この結果、折れ線312でプログラムカウンタの軌跡
が現されるマイクロプロセッサユニット1がカーネル処
理306の実行に入る。図7の流れ図で既に説明したよう
に、この場合まずI/O終了処理が行なわれる。従って
折れ線312は一時的にI/O処理307の領域に入る。ここ
でI/Oプロセッサ6の処理結果を取り出したカーネル
処理は、先ほど休止したプロセス303を再開する。ここ
では折れ線313で軌跡を示したマイクロプロセッサユニ
ット1が待機状態にあるため、カーネル処理306は割り込
み制御回路14によってこのマイクロプロセッサユニット
1に割り込み処理を行なう。この割り込み処理によっ
て、指定されたマイクロプロセッサユニット1はディス
パッチルーチン302を通り、プロセス303の前回休止した
番地から処理を再開する(図8のS810を見よ)。これは
矢印Cで示される位置である。On the other hand, when the I / O processing is completed by the I / O processor 6, the interrupt control circuit 14 sends an interrupt signal to the waiting microprocessor unit 1. As a result, the microprocessor unit 1 in which the locus of the program counter is shown by the polygonal line 312 starts execution of the kernel processing 306. In this case, the I / O end processing is first performed as already described in the flowchart of FIG. Therefore, the polygonal line 312 temporarily enters the area of the I / O processing 307. Here, the kernel process that has taken out the processing result of the I / O processor 6 restarts the process 303 that was paused. Here, since the microprocessor unit 1 indicated by the broken line 313 is in the standby state, the kernel processing 306 causes the interrupt control circuit 14 to interrupt the microprocessor unit 1. By this interrupt processing, the designated microprocessor unit 1 passes through the dispatch routine 302 and restarts the processing from the address of the process 303 which was suspended previously (see S810 in FIG. 8). This is the position indicated by arrow C.
【0085】以上が本実施例における並列実行及び更新
処理304の動作の流れである。The above is the flow of the operation of the parallel execution and update processing 304 in this embodiment.
【0086】次に、更新処理304について、別の実施例
をあげる。Next, another example of the updating process 304 will be described.
【0087】前述の実施例において、更新処理304は、
共有メモリ上のフォントキャッシュ315から、フォント
管理テーブル206の全てと、フォントデータ部201の全て
を局所的なフォントキャッシュ2のフォント管理テーブ
ル206およびフォントデータ部201に転送するものであっ
た。これは、フォント読み込み、登録の各処理におい
て、共有変数であるアクセスカウンタ508をインクリメ
ントした後、フォント管理テーブル206の登録フラグ207
を更新する際に、大域的な(共有の)フォント管理テー
ブル206に対してだけ操作を行なうためである。In the above embodiment, the update process 304 is
All of the font management table 206 and all of the font data section 201 are transferred from the font cache 315 on the shared memory to the local font management table 206 and font data section 201 of the font cache 2. This is because in each process of font reading and registration, after incrementing the access counter 508 which is a shared variable, the registration flag 207 of the font management table 206
This is because only the global (shared) font management table 206 is operated when updating.
【0088】しかし、共有メモリ上のフォントデータ部
201の内容全部を、局所メモリに転送する処理は、処理
速度の点から見て、あるサイズ以上のフォントキャッシ
ュの使用を困難とする。極めて大きなサイズ(1Mバイ
ト以上)のフォントキャッシュを実装したい場合、より
効果的な転送を行なうべきである。これを実現するため
に、別の実施例として次の部分を変更することが考えら
れる。However, the font data section on the shared memory
The process of transferring the entire contents of 201 to the local memory makes it difficult to use a font cache of a certain size or larger in terms of processing speed. If you want to implement a font cache with an extremely large size (1 Mbytes or more), you should transfer more effectively. In order to realize this, the following part may be modified as another embodiment.
【0089】まず図8の文字データ取得処理501の流れ
図の中で、登録フラグ更新(S805)を、共有メモリ4上の
フォント管理テーブル206及び局所フォントキャッシュ2
上のフォント管理テーブル206の双方に対して行なう様
に変更する。また、図9の文字データ登録処理502の流
れ図の中で、登録フラグ更新(S906)を、共有メモリ4上
のフォント管理テーブル206及び局所フォントキャッシ
ュ2上のフォント管理テーブル206の双方に対して行なう
様に変更する。First, in the flow chart of the character data acquisition processing 501 of FIG. 8, the registration flag update (S805) is described as the font management table 206 and the local font cache 2 on the shared memory 4.
Change so that both of the above font management tables 206 are performed. Further, in the flow chart of the character data registration processing 502 of FIG. 9, the registration flag update (S906) is performed for both the font management table 206 on the shared memory 4 and the font management table 206 on the local font cache 2. To change.
【0090】これによって更新処理304は図14の流れ
図の様に行なうことができる。すなわち、共有メモリ上
のフォント管理テーブル206と、フォントキャッシュ2上
のフォント管理テーブル206の内容を個々に比較する(S1
401)。共有メモリ上のフォント管理テーブル206の登録
フラグ207が、フォントキャッシュ2上のフォント管理テ
ーブル206の同位置の登録フラグより新しい(値が大き
い)場合は、共有メモリのフォント管理テーブル206の
この要素(207,208,209全て)を、フォントキャッシュ2
上のフォント管理テーブル206の同位置に転送する(S140
2)。次にこの位置のキーを取り出し、フォントデータ部
201でのフォントデータの開始位置の管理単位メモリ202
の最初のアドレスを計算する(S1403)。さらに、共有メ
モリ4上のフォントデータ部201から、管理単位メモリ20
2の内容を、一文字のデータ全てについて連結リストに
従い順次読み出し、フォントキャッシュ2上のフォント
データ部201の同位置にオーバーライトする(S1404)。こ
の時、削除処理は不要である。続いてフォント管理テー
ブル206の終了かどうかを判断し(S1405)、(S140
1)以降の処理をテーブル終了まで繰り返す。この処理
では、フォントキャッシュの内容が安定し新たな文字の
登録の頻度が下がるにつれ、更新処理304の処理時間
が短縮される。As a result, the update process 304 can be performed as shown in the flowchart of FIG. That is, the contents of the font management table 206 on the shared memory and the contents of the font management table 206 on the font cache 2 are individually compared (S1
401). If the registration flag 207 of the font management table 206 in the shared memory is newer (larger in value) than the registration flag of the same position in the font management table 206 in the font cache 2, this element (of the font management table 206 in the shared memory ( 207,208,209 all), font cache 2
Transfer to the same position in the upper font management table 206 (S140
2). Next, take out the key at this position and put it in the font data section.
Management unit memory 202 for the start position of font data in 201
Calculates the first address of (S1403). Furthermore, from the font data section 201 on the shared memory 4, the management unit memory 20
The contents of 2 are sequentially read in accordance with the linked list for all the data of one character, and are overwritten in the same position of the font data portion 201 on the font cache 2 (S1404). At this time, the deletion process is unnecessary. Subsequently, it is determined whether the font management table 206 is finished (S1405), and (S140
1) The subsequent processing is repeated until the table ends. In this process, the processing time of the update process 304 is shortened as the contents of the font cache are stabilized and the frequency of registration of new characters decreases.
【0091】以上に述べた様な更新処理304を伴うプロ
セス管理によって、本実施例の印刷装置においては、複
数個のマイクロプロセッサユニット1の局所的なフォン
トキャッシュ2の内容を、それぞれ一致させることがで
きる。この一方で、プロセス実行中はフォントキャッシ
ュ2からのデータ読み込みは、共有メモリ空間へのアク
セスを発生しないことによって高速に行なうことができ
る。In the printing apparatus according to the present embodiment, the contents of the local font caches 2 of the plurality of microprocessor units 1 can be matched with each other by the process management involving the updating process 304 as described above. it can. On the other hand, during the process execution, the data reading from the font cache 2 can be performed at high speed by not accessing the shared memory space.
【0092】すなわち本実施例が示したのは、書き込み
動作を伴うフォント登録は共有メモリに行ない、読み込
みは局所メモリだけから行なうフォント管理方法であ
る。フォントをフォントキャッシュに登録する際、局所
メモリへの書き込みも行なわないため、メモリアドレス
管理は簡単であり、局所メモリ、共有メモリの配置上の
制約が少なく柔軟である。That is, the present embodiment shows a font management method in which font registration involving a writing operation is performed in the shared memory and reading is performed only from the local memory. When a font is registered in the font cache, it is not written to the local memory, so memory address management is simple, and there are few restrictions on the arrangement of the local memory and the shared memory, and the font is flexible.
【0093】また、上記実施例での構成において、図1
のエンジン制御装置10及びプリントエンジン11の部分
を、グラフィックコントローラおよびCRT装置等にそ
れぞれ置き換えることによって、そのまま表示装置、ワ
ークステーション等の機器に適用できることは言うまで
もない。In addition, in the configuration of the above embodiment, FIG.
It goes without saying that the engine controller 10 and the print engine 11 can be directly applied to devices such as a display device and a workstation by replacing the parts of the engine controller 10 and the print engine 11 with a graphic controller and a CRT device.
【0094】[0094]
【発明の効果】以上の実施例において明らかなように、
マルチプロセッサ構成の処理装置において、個々のマイ
クロプロセッサに局所的なフォントキャッシュを配置し
た場合、本発明の文字データ管理手段によって、キャッ
シュ内のデータ一致性を保つのは容易である。加えて本
発明は、付加的なハードウェア無しに、フォントキャッ
シュの一致を図る解決手段であり、装置コスト面で効果
が大きい。As is apparent from the above embodiments,
In a processor having a multiprocessor structure, when a local font cache is arranged in each microprocessor, it is easy to maintain the data consistency in the cache by the character data management means of the present invention. In addition, the present invention is a solution for achieving matching of font caches without additional hardware, and is highly effective in terms of device cost.
【0095】個々の局所的なフォントキャッシュの内容
がほぼ一致しているので、どの様なプロセスの割り当て
が行なわれても、ある水準以上のキャッシュのヒット率
を確保できるという効果がある。Since the contents of the individual local font caches are substantially the same, there is an effect that a cache hit rate of a certain level or more can be secured no matter what process allocation is performed.
【0096】また、局所的なフォントキャッシュに該当
する文字データが無い場合であっても、まず大域的なフ
ォントキャッシュの管理テーブルの参照が行なわれれる
ため、他のプロセスが既に作成し登録した文字データが
有れば使用可能である。これは、同一文字のアウトライ
ンフォント元データを複数のプロセスがハードディスク
装置から読み取ろうとする処理の重複を防ぐ効果があ
り、結果的に、I/O処理がボトルネックとなることを
解消する効果がある。Even if there is no corresponding character data in the local font cache, the global font cache management table is first referenced, so that the characters already created and registered by other processes are registered. It can be used if there is data. This has an effect of preventing the duplication of the process in which a plurality of processes try to read the outline font original data of the same character from the hard disk device, and as a result, there is an effect that the I / O process becomes a bottleneck. ..
【図1】本発明の実施例のブロック図。FIG. 1 is a block diagram of an embodiment of the present invention.
【図2】フォントキャッシュシステムの説明図。FIG. 2 is an explanatory diagram of a font cache system.
【図3】マルチプロセッサ処理の説明図。FIG. 3 is an explanatory diagram of multiprocessor processing.
【図4】マルチプロセッサ処理の状態遷移図。FIG. 4 is a state transition diagram of multiprocessor processing.
【図5】文字データ取得処理の概略構成図。FIG. 5 is a schematic configuration diagram of character data acquisition processing.
【図6】フォント管理テーブル内の一要素のデータ構造
説明図。FIG. 6 is an explanatory diagram of a data structure of one element in the font management table.
【図7】カーネル処理の流れ図。FIG. 7 is a flowchart of kernel processing.
【図8】文字データ取得処理の流れ図。FIG. 8 is a flowchart of character data acquisition processing.
【図9】文字データ登録処理の流れ図。FIG. 9 is a flowchart of character data registration processing.
【図10】文字データ削除処理の流れ図。FIG. 10 is a flowchart of character data deletion processing.
【図11】読み出し処理の流れ図。FIG. 11 is a flowchart of read processing.
【図12】書き込み処理の流れ図。FIG. 12 is a flowchart of a writing process.
【図13】連結解消処理の流れ図。FIG. 13 is a flowchart of connection cancellation processing.
【図14】更新処理304の別実施例の流れ図。FIG. 14 is a flowchart of another embodiment of update processing 304.
1…マイクロプロセッサユニット 2…フォントキャッシュ 3…グローバルバス 4…共有RAM 5…共有ROM 6…I/Oプロセッサ 7…ディスク制御装置 8…ハードディスク装置 9…イメージメモリ 10…エンジン制御装置 11…プリントエンジン 12…バス調停制御回路 13…インターフェース 14…割り込み制御回路 15…バス調停回路 16…マイクロプロセッサユニット1の動作状態を示す
フラグ 201…フォントデータ部 202…管理単位メモリ 203…指標部 204…データ部 205…あふれ領域 206…フォント管理テーブル 207…登録フラグ 208…文字指定レコード 209…キーの値(指標) 210…読み出し処理 211…書き込み処理 212…削除処理 300…メモリ空間 301…待機ルーチン 302…ディスパッチルーチン 303、308、309…プロセス 304…更新処理 305…要求発生処理 306…カーネル処理 307…I/O処理 315…共有フォントキャッシュ領域 501…文字データ取得処理 502…文字データ登録処理 503…連結解消処理1 ... Microprocessor unit 2 ... Font cache 3 ... Global bus 4 ... Shared RAM 5 ... Shared ROM 6 ... I / O processor 7 ... Disk controller 8 ... Hard disk device 9 ... Image memory 10 ... Engine controller 11 ... Print engine 12 ... bus arbitration control circuit 13 ... interface 14 ... interruption control circuit 15 ... bus arbitration circuit 16 ... flag indicating the operating state of the microprocessor unit 201 ... font data section 202 ... management unit memory 203 ... index section 204 ... data section 205 ... Overflow area 206 ... Font management table 207 ... Registration flag 208 ... Character designation record 209 ... Key value (index) 210 ... Read processing 211 ... Write processing 212 ... Delete processing 300 ... Memory space 301 ... Standby routine 30 2 ... Dispatch routine 303, 308, 309 ... Process 304 ... Update process 305 ... Request generation process 306 ... Kernel process 307 ... I / O process 315 ... Shared font cache area 501 ... Character data acquisition process 502 ... Character data registration process 503 ... Deconsolidation processing
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.5 識別記号 庁内整理番号 FI 技術表示箇所 G09G 5/22 9061−5G ─────────────────────────────────────────────────── ─── Continuation of the front page (51) Int.Cl. 5 Identification code Internal reference number FI technical display location G09G 5/22 9061-5G
Claims (1)
共通にアクセス可能な共有フォントキャッシュと、前記
プロセッサから共通にアクセス可能なアウトラインフォ
ント供給部と、前記プロセッサ個々にアクセス可能な局
所フォントキャッシュとを有し、 プロセス実行時の文字の取得要求に対し、まず局所的フ
ォントキャッシュからの読み取りを試み、あればこれを
読み取り、なければ共有フォントキャッシュからの読み
取りを試み、更にない時は、アウトラインフォント供給
部から元データを読み込み文字画素データを生成し、共
有フォントキャッシュに登録する。実行時のプロセス終
了あるいは休止時には、共有フォントキャッシュの内容
を局所的フォントキャッシュに転送し、個々のフォント
キャッシュの内容を更新することを特徴とする文字デー
タ管理装置。1. A plurality of processors, a shared font cache commonly accessible from the processors, an outline font supply unit commonly accessible from the processors, and a local font cache accessible to each of the processors. However, in response to the character acquisition request at the time of process execution, first try to read from the local font cache, read it if there is, if not, try to read from the shared font cache. The original data is read from and the character pixel data is generated and registered in the shared font cache. A character data management device characterized by transferring the contents of a shared font cache to a local font cache and updating the contents of individual font caches when a process is terminated or paused at the time of execution.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4062395A JPH05261983A (en) | 1992-03-18 | 1992-03-18 | Character data control device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4062395A JPH05261983A (en) | 1992-03-18 | 1992-03-18 | Character data control device |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH05261983A true JPH05261983A (en) | 1993-10-12 |
Family
ID=13198909
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP4062395A Pending JPH05261983A (en) | 1992-03-18 | 1992-03-18 | Character data control device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH05261983A (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6955411B2 (en) | 1998-11-26 | 2005-10-18 | Seiko Epson Corporation | Ink cartridge and printer using the same |
US7195346B1 (en) | 1998-11-02 | 2007-03-27 | Seiko Epson Corporation | Ink cartridge and printer using the same |
JP2014059510A (en) * | 2012-09-19 | 2014-04-03 | Jvc Kenwood Corp | Display device and display method |
-
1992
- 1992-03-18 JP JP4062395A patent/JPH05261983A/en active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7195346B1 (en) | 1998-11-02 | 2007-03-27 | Seiko Epson Corporation | Ink cartridge and printer using the same |
US6955411B2 (en) | 1998-11-26 | 2005-10-18 | Seiko Epson Corporation | Ink cartridge and printer using the same |
JP2014059510A (en) * | 2012-09-19 | 2014-04-03 | Jvc Kenwood Corp | Display device and display method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5978893A (en) | Method and system for memory management | |
KR100733852B1 (en) | Computer system | |
JP3264319B2 (en) | Bus bridge | |
JP3872558B2 (en) | Fallback processing for page generation using memory reduction techniques | |
JP4156033B2 (en) | How to get contiguous memory buffer and build page table | |
EP0230354A2 (en) | Enhanced handling of large virtual storage extents | |
EP0239181A2 (en) | Interrupt requests serializing in a virtual memory data processing system | |
WO1991015831A1 (en) | Page description language interpreter | |
JP2610993B2 (en) | Information processing apparatus and method | |
WO1998026352A1 (en) | Method of file pre-read control in computer system | |
JP4344898B2 (en) | Image processing apparatus, image processing method, and image forming apparatus | |
US6665787B2 (en) | Very high speed page operations in indirect accessed memory systems | |
JP3814324B2 (en) | Print control apparatus and print control method | |
JPH05261983A (en) | Character data control device | |
CA1160351A (en) | Virtual memory terminal | |
JPH08164641A (en) | Printer with cash memory and its management method | |
EP0430500B1 (en) | System and method for atomic access to an input/output device with direct memory access | |
JP2521027B2 (en) | Multiprocessor and control method thereof | |
JP3453761B2 (en) | Address translation method | |
JPH05233510A (en) | Character data control method | |
JPH05204591A (en) | Image plotting device | |
EP0494676A2 (en) | Raster image processing system | |
JP3745909B2 (en) | File management method | |
JP3506335B2 (en) | Control method | |
JPH06289838A (en) | Font cache controller and its applying method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081113 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Year of fee payment: 11 Free format text: PAYMENT UNTIL: 20091113 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091113 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Year of fee payment: 12 Free format text: PAYMENT UNTIL: 20101113 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111113 Year of fee payment: 13 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Year of fee payment: 13 Free format text: PAYMENT UNTIL: 20111113 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121113 Year of fee payment: 14 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Year of fee payment: 15 Free format text: PAYMENT UNTIL: 20131113 |