JPH0497424A - System for compressing initial value in load module - Google Patents

System for compressing initial value in load module

Info

Publication number
JPH0497424A
JPH0497424A JP21627990A JP21627990A JPH0497424A JP H0497424 A JPH0497424 A JP H0497424A JP 21627990 A JP21627990 A JP 21627990A JP 21627990 A JP21627990 A JP 21627990A JP H0497424 A JPH0497424 A JP H0497424A
Authority
JP
Japan
Prior art keywords
initial value
load module
control information
module
value control
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
Application number
JP21627990A
Other languages
Japanese (ja)
Inventor
Atsushi Goto
淳 後藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP21627990A priority Critical patent/JPH0497424A/en
Publication of JPH0497424A publication Critical patent/JPH0497424A/en
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)
  • Stored Programmes (AREA)

Abstract

PURPOSE:To suppress the increment of a load module(LM) and to efficiently store an initial value by providing this compressing system with an object module(OM) forming means, a linking means, and an LM executing means. CONSTITUTION:Respective intra-OM initial value control information having information for controlling respective initial values are included in respective OMs OM1 to OMn formed by the OM forming means 1 stored in a compiler. The linking means 2 links the OM1 formed by the means 1 with other OMs OM2 to OMn formed by the means 1 and forms an executable LM. The LM executing means 3 reads out the LM formed by the means 2 to an execution memory space and executes the read LM. Since processing can be attained only by repeatedly storing the initial value in the LM, the increment of the LM can be suppressed and the initial value can be efficiently stored.

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、計算機システムにおけるプログラムの、コン
パイル、リンク及び実行におけるロードモジュール内初
期値圧縮方式に関するものである。
DETAILED DESCRIPTION OF THE INVENTION [Field of Industrial Application] The present invention relates to an initial value compression method within a load module in compiling, linking and executing a program in a computer system.

〔従来の技術〕[Conventional technology]

コンパイラによってオブジェクトモジュールを生成する
際には、その内部にプログラムの初期値を格納しておく
必要がある。
When an object module is generated by a compiler, it is necessary to store the initial values of the program inside it.

オブジェクトモジュールの示すプログラムが、実行時に
占めるメモリ空間(以下実行メモリ空間と称す)上には
プログラムによって明示的に指示され、初期値が決定し
ている領域(以下初期化領域と称す)と初期値が規定さ
れておらず領域のみが確保されている領域(以下非初期
化領域と称す)が交互に存在するのが通常である。この
為、通常オブジェクトモジュール内に初期化領域に対応
する初期値を実行メモリ空間上の配置とは無関係に格納
し、各々の初期値が実行メモリ空間上のどの部分の初期
値を表すかを示す情報(以下初期値制御情報と称す)を
付加して格納するのが通常であった。
The memory space that the program indicated by the object module occupies during execution (hereinafter referred to as the execution memory space) is explicitly designated by the program and has an area where the initial value is determined (hereinafter referred to as the initialization area) and the initial value. Normally, there are alternately areas in which only areas are reserved without being defined (hereinafter referred to as non-initialized areas). For this reason, initial values corresponding to the initialization area are usually stored in the object module regardless of their location in the execution memory space, and each initial value indicates which part of the execution memory space the initial value represents. It was usual to add information (hereinafter referred to as initial value control information) and store it.

さらに、配列に対する初期化領域の内容はある一定の初
期値の繰り返しであることが多いことから初期値は繰り
返しの一回分のみを格納し初期値制御情報内に繰り返し
の回数を含める形式の繰り返し型初期値制御情報によっ
て表し、オブジェクトモジュール内の初期値の占有サイ
ズを減少させる手法を用いることもあった。
Furthermore, since the contents of the initialization area for arrays are often a repetition of a certain initial value, the initial value is a repetition type in which only one repetition is stored and the number of repetitions is included in the initial value control information. A method has also been used in which initial value control information is used to reduce the occupied size of the initial value within the object module.

次にロードモジュールに関しては、ロードモジュール内
の形式が、なんらかの形式でメモリ上に展開された初期
値の状態をロードモジュール上に格納しておく必要があ
る形式の場合、これを実現する一つの方式としてはメモ
リ上に展開されたイメージそのものを、ロードモジュー
ル上にそのまま格納する方式が考えられる。
Next, regarding the load module, if the format in the load module is such that it is necessary to store the initial value state expanded in memory in some format, there is one method to achieve this. A possible method would be to store the image expanded in memory as is on the load module.

しかしプログラムがメモリ上を占有する全ての領域につ
いて初期値が規定されているとは限らない為、上記のよ
うな初期値の格納方式の場合には非初期化領域も含めて
ロードモジュール上に格納しておく必要がある為、非初
期化領域には通常適当な値を充填してロードモジュール
上に格納することとなる。
However, since initial values are not necessarily specified for all areas that a program occupies on memory, in the case of the above initial value storage method, non-initialized areas are also stored in the load module. Therefore, the non-initialized area is usually filled with appropriate values and stored on the load module.

しかし非初期化領域は、本来初期値が規定されない領域
の為、それがロードモジュール上の領域を占有するのは
ロードモジュールのサイズの不必要な肥大を招くことに
なる。
However, since the non-initialized area is originally an area for which no initial value is defined, if it occupies the area on the load module, it will lead to an unnecessary increase in the size of the load module.

この為、実行メモリ空間に展開されたイメージで、なお
非初期化領域がある場合には、ロードモジュール上には
非初期化領域を除いた部分のみを各初期値の実行メモリ
空間上の先頭位置及びサイズ等の制御情報と共に格納し
、実行メモリ空間への入力時に各初期値を実メモリ空間
上に振分る事により、ロードモジュールのサイズを抑え
る手法が存在していた。
Therefore, if there is a non-initialized area in the image expanded to the execution memory space, only the portion excluding the non-initialized area is stored on the load module at the starting position in the execution memory space of each initial value. There is a method for reducing the size of a load module by storing initial values together with control information such as size and size, and allocating each initial value to the real memory space when inputting to the execution memory space.

〔発明が解決しようとする課題〕[Problem to be solved by the invention]

上記のように従来のロードモジュール内の初期値を圧縮
する手法を用いた場合、初期化されていない領域が、ロ
ードモジュール内の領域を占有することにより、ロード
モジュールのサイズが増大することを防ぐことが可能と
なる。
When using the conventional method of compressing the initial values in the load module as described above, the size of the load module is prevented from increasing due to uninitialized areas occupying the area in the load module. becomes possible.

しかし配列に対する初期値のように同一の内容のイメー
ジが複数回繰り返されている、オブジェクトモジュール
内では圧縮されているような初期値の場合には、展開さ
れてロードモジュール内に格納される為、そのような初
期化領域が、非常に大きい場合にはロードモジュールの
サイズが増大することとなる。
However, if the same image is repeated multiple times, such as an initial value for an array, or if the initial value is compressed in the object module, it will be expanded and stored in the load module. If such an initialization area is very large, the size of the load module will increase.

〔課題を解決するための手段〕[Means to solve the problem]

本発明においては従来技術のかかる課題を、コンパイル
時において生成するオブジェクトモジュール内の初期値
の中に、特定の領域を同一のイメージで繰り返し初期化
する形式のものか存在した場合に、その領域の全イメー
ジではなく指定領域の同一イメージによる繰り返し初期
化を要求する繰り返し型オブジェクトモジュール内初期
値制御情報をオブジェクトモジュール内に格納する機能
を持つオブジェクトモジュール生成手段と、リンク時に
おいて入力オブジェクトモジュール内に繰り返し型オブ
ジェクトモジュール内初期値制御情報が存在した場合、
実行メモリ空間上に指定領域に対して同一イメージによ
る繰り返し初期化を要求する繰り返し型ロードモジュー
ル内初期値制御情報を生成してロードモジュール内に格
納する機能を持つリンク手段と、ロードモジュールを実
行する際にロードモジュール内の繰り返し型ロードモジ
ュール内初期値制御情報に従って指定領域の繰り返し初
期化を行う機能を持つロードモジュール実行手段とから
構成されることを特徴とするロードモジュール内初期値
圧縮方式を持つことにより解決する。
The present invention solves this problem of the prior art when the initial values in the object module generated at compile time are of a type that repeatedly initializes a specific area with the same image. object module generation means that has a function of storing initial value control information in the object module in a repeatable object module that requests repeated initialization with the same image of a specified area instead of all images; If initial value control information exists in the type object module,
A linking means having a function of generating initial value control information in a repetitive load module that requests repeated initialization of a specified area in the execution memory space with the same image and storing it in the load module, and executing the load module. and a load module execution means having a function of repeatedly initializing a designated area according to repetitive type load module initial value control information in the load module. This is solved by

〔実施例〕〔Example〕

次に本発明の実施例を図面を参照して説明する。 Next, embodiments of the present invention will be described with reference to the drawings.

第1図は本発明の一実施例を示すブロック図である。第
1図において、コンパイラ内のオブジェクトモジュール
生成手段1により生成されるオブジェクトモジュール0
M1〜OMn内にはそれぞれ初期値の他にそれを制御す
る為の情報を持つオブジェクトモジュール内初期値制御
情報(以下、OM内初期値制御情報と称す)が含まれる
FIG. 1 is a block diagram showing one embodiment of the present invention. In FIG. 1, an object module 0 generated by object module generation means 1 in the compiler
Each of M1 to OMn includes object module initial value control information (hereinafter referred to as OM initial value control information) having information for controlling the initial value in addition to the initial value.

第2図はOM内初期値制御情報を示したものである。FIG. 2 shows the initial value control information within the OM.

このOM内初期値制御情報内はOM内オフセット部、イ
メージサイズ部、オフセット部及び、繰り返し回数部に
分かれ、OM内オフセット部及びイメージサイズ部はこ
の初期値制御情報の指す初期値の0M内の位置とサイズ
を示す。さらにオフセット部は、このOM内初期値制御
情報によって初期化すべき初期化領域のオブジェクトモ
ジュールOMが占める実行メモリ空間の先頭からの相対
位置を示し、繰り返し回数部は指定された初期値の繰り
返し回数を示す。ただし、繰り返し回数は通常、「0」
であり「1」以上の時、繰り返し型OM内初期値制御情
報となる。
This OM initial value control information is divided into an OM offset part, an image size part, an offset part, and a repetition number part. Indicates location and size. Further, the offset part indicates the relative position from the beginning of the execution memory space occupied by the object module OM of the initialization area to be initialized by this OM internal initial value control information, and the repetition number part indicates the number of repetitions of the specified initial value. show. However, the number of repetitions is usually "0"
When it is "1" or more, it becomes the initial value control information in the repeating type OM.

第3図は初期値生成処理11の処理を示したフローチャ
ートである。まずGOIにおいて全ての初期値の出力が
終了したが否がの判定を行い、全ての初期値の出力が終
了するまでGO1〜GO4の処理を繰り返す。GO2に
おいては初期値のイメージを出力オブジェクトモジュー
90M上に出力する。
FIG. 3 is a flowchart showing the initial value generation process 11. First, it is determined in GOI whether or not all initial values have been output, and the processes of GO1 to GO4 are repeated until all initial values have been output. In GO2, the initial value image is output onto the output object module 90M.

次にGO3においてOM内初期値制御情報内にOM内オ
フセット、イメージサイズ、オフセット及び、繰り返し
回数の各情報をセットし、Go4においてGO3で必要
な情報をセットした初期値制御情報をオブジェクトモジ
ュールOMに出方する。以上の処理を全ての初期値の出
力が終了するまで繰り返す。
Next, in GO3, set the OM internal offset, image size, offset, and repetition count information in the OM initial value control information, and in Go4, set the initial value control information with the necessary information in GO3 to the object module OM. Appear. The above process is repeated until all initial values have been output.

リンク手段2においては前記のオブジェクトモジュール
生成手段1て生成されたOMIとその他に生成されたオ
ブジェクトモジュールOM2〜nを結合して実行可能な
ロードモジュールLMを生成する。まず、オブジェクト
モジュール入力処理21においてOMI〜nを入力し、
リンク処理22においてOMI〜OMn間の外部参照を
解決する。次に初期値展開処理23においてOMI〜M
Onの初期値を実行メモリ空間上の配置と同等になるよ
うに展開した後、非初期化領域を削除してロードモジュ
ール内初期値制御情報(以下、LM内初期値制御情報と
称す)と共にロードモジュールLM内に出力する。最後
にロードモジュール生成処理24によって初期値以外の
ロードモジュールに必要な実行開始番地/必要メモリサ
イズ数/メモリ保護領域情報等のプロセス情報を出力し
てロードモジュールLMを完成する。
The linking means 2 combines the OMI generated by the object module generating means 1 with the object modules OM2 to OM2-n generated elsewhere to generate an executable load module LM. First, in the object module input process 21, input OMI~n,
In link processing 22, external references between OMI and OMn are resolved. Next, in the initial value expansion process 23, OMI~M
After expanding the initial value of On to be equivalent to the layout in the execution memory space, delete the non-initialized area and load it together with the initial value control information in the load module (hereinafter referred to as the initial value control information in the LM). Output into module LM. Finally, the load module generation process 24 outputs process information such as the execution start address/required memory size number/memory protection area information required for the load module other than the initial value, thereby completing the load module LM.

第4図は初期値展開処理23の処理を示したフローチャ
ートであり、第5図は初期値展開処理23で生成される
LM内初期値制御情報の構成を示した図である。このL
M内初期値制御情報内はLM内オフセット部、イメージ
サイズ部、オフセット部及び、繰り返し回数部に分かれ
、LM内オフセット部及びイメージサイズ部はこの初期
値制御情報の指す初期値のLM内の位置とサイズをボす
。さらにオフセット部は、このLM内初期値制御情報に
よって初期化すべき実行メモリ空間上の位置を示し、繰
り返し回数部は指定された初期値の繰り返し回数を示す
FIG. 4 is a flowchart showing the process of the initial value expansion process 23, and FIG. 5 is a diagram showing the structure of the LM initial value control information generated in the initial value expansion process 23. This L
The intra-M initial value control information is divided into an intra-LM offset section, an image size section, an offset section, and a repetition number section, and the intra-LM offset section and image size section indicate the position within the LM of the initial value indicated by this initial value control information. and size. Further, the offset section indicates the position in the execution memory space to be initialized by this LM internal initial value control information, and the repetition number section indicates the number of times the specified initial value is repeated.

以下、第4図に従って初期値展開処理23の処理の概要
を説明する。ただしこの場合人力OMに含まれるOM内
初期値制御情報は、オフセットをキーとして昇順にソー
トされており、複数のOM内初期値制御情報が同一の領
域を初期化することは無いとする。まずLGIにおいて
全ての入力OMに対して初期値の処理を終了したか否か
の判定を行い、全ての入力OMに対して初期値の処理が
終了するまで、LG2〜3で10M処理用の初期化処理
を行った後、LG4〜9の処理を0M毎に繰り返す。次
にLG2においてbaに、現在処理中のOMが配置され
る実行メモリ上に先頭位置の番地をセットし、ixにO
をセットする。次にLG4において処理対象のOMに含
まれる全てのメージサイズを加えることにより行う。次
に、LG9においてiXにオフセットにイメージサイズ
を加えた値をセットして、OM内初期値制御情報1個分
の処理を終了する。ロードモジュール実行手段3におい
てはリンク手段2て生成されたロードモジュールLMを
、実行メモリ空間上に読み込み、実行させる。まず、プ
ロセス情報ロード処理31においてロードモジュールL
M内の、実行開始番地/必要メモリサイズ数/メモリ保
護領域情報等のプロセス情報及びLM内初期値制御情報
を読み込み、次にそれに従って初期値ロード手段32に
おいて初期値を実行メモリ空間上に展開した後、実行メ
モリ空間上の指定実行開始番地に実行を移す。
The outline of the initial value development process 23 will be explained below with reference to FIG. However, in this case, the OM initial value control information included in the human-powered OM is sorted in ascending order using the offset as a key, and it is assumed that multiple pieces of OM initial value control information do not initialize the same area. First, the LGI determines whether or not initial value processing has been completed for all input OMs, and LG2 and 3 perform initial value processing for 10M processing until initial value processing has been completed for all input OMs. After performing the conversion process, the process for LG4 to LG9 is repeated every 0M. Next, in LG2, set the address of the start position on the execution memory where the OM currently being processed is placed in ba, and
Set. Next, in LG4, all image sizes included in the OM to be processed are added. Next, in LG9, a value obtained by adding the image size to the offset is set to iX, and the processing for one piece of OM initial value control information is completed. The load module execution means 3 loads the load module LM generated by the link means 2 into the execution memory space and executes it. First, in the process information load process 31, the load module L
Reads process information such as execution start address/required memory size number/memory protection area information and initial value control information in LM in M, and then expands the initial value into the execution memory space in the initial value loading means 32 according to the information. After that, execution moves to the specified execution start address in the execution memory space.

第6図は初期値ロード処理32の処理を示すフローチャ
ートである。LDIにおいてロードモジュールLM内の
全てのLM内初期値制御情報の処理が終了したか否かの
判定を行い、全てのLM内初期値制御情報の処理が終了
するまで、LD2〜7を繰り返す。LD2〜3において
はcntにLM内初期値制御情報内の繰り返し回数をセ
ットし、ptにオフセットをセットする。LD4におい
て実行メモリ空間上のptで指す領域に処理対象のLM
内初期値制御情報の指すロードモジュール上のイメージ
サイズ分の初期値をセットする。
FIG. 6 is a flowchart showing the initial value load processing 32. In LDI, it is determined whether the processing of all the LM initial value control information in the load module LM has been completed, and LD2 to LD7 are repeated until the processing of all the LM initial value control information is completed. In LD2 and LD3, the number of repetitions in the LM internal initial value control information is set in cnt, and the offset is set in pt. In LD4, the LM to be processed is stored in the area pointed to by pt in the execution memory space.
Set the initial value for the image size on the load module pointed to by the initial value control information.

次にLD5でcntを減らし、LD6でptにイメージ
サイズの値を加え、繰り返し型初期値制御情報の場合用
にptが次の初期化領域の先頭を指すようにする。最後
にLD7でcntが0以上が否かを判定し、0以上なら
LD4に戻る。以上の処理により初期値ロード処理32
を終了する。
Next, cnt is decreased in LD5, and the value of the image size is added to pt in LD6, so that pt points to the beginning of the next initialization area in case of repetitive initial value control information. Finally, it is determined in LD7 whether cnt is 0 or more, and if it is 0 or more, the process returns to LD4. With the above processing, initial value load processing 32
end.

〔発明の効果〕 以上説明したように、本発明によれば、一定の初期値イ
メージの列を複数回繰り返して初期化するような領域の
初期化を含むようなロードモジュールにおいても、繰り
返し1回分の初期値をロードモジュール内に格納するだ
けで済む為、ロードモジュールの増大を抑えることがで
きる上に初期値を効率良く格納することが可能になると
いう効果がある。
[Effects of the Invention] As explained above, according to the present invention, even in a load module that includes initialization of an area such as repeating a certain initial value image sequence multiple times, Since it is only necessary to store the initial value in the load module, it is possible to suppress the increase in the number of load modules, and it is also possible to store the initial value efficiently.

【図面の簡単な説明】[Brief explanation of drawings]

第1図は本発明の一実施例を示す構成図、第2図はオブ
ジェクトモジュール内初期値制御情報の構成を示す図、
第3図は初期値生成処理11の処理例を示すフローチャ
ート、第4図は初期値展開処理23の処理例を示すフロ
ーチャート、第5図はロードモジュール内初期値制御情
報の構成を示す図、第6図は初期値ロード処理32の処
理例を示すフローチャートである。 1・・・オブジェクトモジュール生成手段、2・・・リ
ンク手段、3・・・ロードモジュール実行手段。
FIG. 1 is a configuration diagram showing an embodiment of the present invention, FIG. 2 is a diagram showing the configuration of initial value control information in an object module,
3 is a flowchart showing a processing example of the initial value generation processing 11, FIG. 4 is a flowchart showing a processing example of the initial value expansion processing 23, FIG. 5 is a diagram showing the configuration of initial value control information in the load module, and FIG. FIG. 6 is a flowchart showing a processing example of the initial value load processing 32. 1... Object module generation means, 2... Linking means, 3... Load module execution means.

Claims (1)

【特許請求の範囲】[Claims] コンパイル時において生成するオブジェクトモジュール
内の初期値の中に、特定の領域を同一のイメージで繰り
返し初期化する形式のものが存在するロードモジュール
内初期値圧縮方式において、前記領域の内指定領域の同
一イメージによる繰り返し初期値を要求する繰り返し型
オブジェクトモジュール内初期値制御情報をオブジェク
トモジュール内に格納するオブジェクトモジュール生成
手段と、リンク時に入力オブジェクトモジュール内に前
記繰り返し型オブジェクトモジュール内初期値制御情報
が存在した場合、実行メモリ空間上に、指定領域に対し
て同一イメージによる繰り返し初期化を要求する繰り返
し型ロードモジュール内初期値制御情報を生成してロー
ドモジュール内に格納するリンク手段と、ロードモジュ
ールを実行する際に前記ロードモジュール内の繰り返し
型ロードモジュール内初期値制御情報に従って指定領域
の繰り返し初期化を行うロードモジュール実行手段とか
ら構成されることを特徴とするロードモジュール内初期
値圧縮方式。
In the initial value compression method in a load module, where there are initial values in an object module generated at compile time that repeatedly initialize a specific area with the same image, object module generation means for storing in an object module initial value control information in a repeating type object module that requests a repeated initial value based on an image, and the initial value control information in a repeating type object module being present in an input object module at the time of linking. In this case, linking means generates initial value control information in a repetitive load module that requests repeated initialization of a specified area with the same image in the execution memory space and stores it in the load module, and a linking means that executes the load module. and load module execution means for repeatedly initializing a designated area according to repetitive initial value control information in the load module in the load module.
JP21627990A 1990-08-16 1990-08-16 System for compressing initial value in load module Pending JPH0497424A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP21627990A JPH0497424A (en) 1990-08-16 1990-08-16 System for compressing initial value in load module

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP21627990A JPH0497424A (en) 1990-08-16 1990-08-16 System for compressing initial value in load module

Publications (1)

Publication Number Publication Date
JPH0497424A true JPH0497424A (en) 1992-03-30

Family

ID=16686046

Family Applications (1)

Application Number Title Priority Date Filing Date
JP21627990A Pending JPH0497424A (en) 1990-08-16 1990-08-16 System for compressing initial value in load module

Country Status (1)

Country Link
JP (1) JPH0497424A (en)

Similar Documents

Publication Publication Date Title
EP0122048B1 (en) Data processing cells and parallel data processors incorporating such cells
US5095441A (en) Rule inference and localization during synthesis of logic circuit designs
JPH0380337A (en) Parallel form producing device
US6134640A (en) Method for transforming flash memory storage format based on average data length
JPH0497424A (en) System for compressing initial value in load module
JPH1027127A (en) Data compression storage arithmetic unit
JPH01196631A (en) System for compressing and developing initial value
JP4260086B2 (en) Data flow graph generation device, processing device, reconfigurable circuit.
JP2511145B2 (en) Method for creating cell layout data of mask ROM integrated circuit
Zuberek Stepwise refinements of net models and their place invariants
JP2666733B2 (en) High-speed graphic processor
JPH04153780A (en) Logical circuit composing method
JP2006113935A (en) Dynamic link library calling code generation method, program, and apparatus
JP2000035882A (en) Method for dynamic change of function calling sequence
JPH03128475A (en) Logic circuit with logical test function
JP2835082B2 (en) Logic circuit synthesizer
US5778351A (en) Method for storing system communications system data using modules and tables
JPH0782440B2 (en) Logic synthesis operation allocation method
JPH05135055A (en) Word processor equipped with puzzle game function
JPH0229828A (en) Logic circuit converting system
JPH09258985A (en) Planning device
JPS61149365A (en) Data controlling device
JPH0736664A (en) State assigning device
KR19990037482A (en) Address generation circuit for data compression
JPS58176704A (en) Assembling system for circuit diagram type programming device of programmable controller