GB2016752A - Data Processing Apparatus - Google Patents

Data Processing Apparatus

Info

Publication number
GB2016752A
GB2016752A GB7904816A GB7904816A GB2016752A GB 2016752 A GB2016752 A GB 2016752A GB 7904816 A GB7904816 A GB 7904816A GB 7904816 A GB7904816 A GB 7904816A GB 2016752 A GB2016752 A GB 2016752A
Authority
GB
United Kingdom
Prior art keywords
operand
pairs
register
string
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.)
Granted
Application number
GB7904816A
Other versions
GB2016752B (en
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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
Priority claimed from US05/887,095 external-priority patent/US4189772A/en
Priority claimed from US05/887,097 external-priority patent/US4189770A/en
Priority claimed from US05/887,091 external-priority patent/US4189768A/en
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of GB2016752A publication Critical patent/GB2016752A/en
Application granted granted Critical
Publication of GB2016752B publication Critical patent/GB2016752B/en
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/04Addressing variable-length words or parts of words
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0855Overlapped cache accessing, e.g. pipeline
    • G06F12/0859Overlapped cache accessing, e.g. pipeline with reload from main memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0886Variable-length word access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30018Bit or string instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/345Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3816Instruction alignment, e.g. cache line crossing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • G06F9/383Operand prefetching

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Advance Control (AREA)

Abstract

Improved processor performance when dealing with variable field length operands is achieved by incorporating a fetching mechanism A9 which can operate in an overlapped mode with the instruction execution unit EF. Further improvement is provided by aligning operands within the fetching mechanism A13 and also, when a cache is incorporated, by incorporating a cache by-pass data transfer path by which, in the case of a cache miss, simultaneous transfer of requested items can proceed to both the cache and the operand fetch mechanism starting with the specific item sought. The operand fetch mechanism includes a plurality of operand-address pairs of registers, and a wrap-around shifter. When an instruction specifying a variable length field operand is decoded a set of empty register pairs, corresponding in number to the operand length, is formed into a string by means of pointers and the starting address of the operand is inserted into the address register of the first register pair of the string. Progressively incremented addresses are entered into the remaining register pairs, the amount of the increment being the unit of transfer. A separate mechanism A9 responds to the address to fetch the corresponding operand segments entering the same into the corresponding other registers of the pairs. A further mechanism responds to the execution unit to transfer the operand segments in string order from the register pairs to the execution unit. Where source and destination operands are specified two strings are established and where alignment is required transfer into the register pairs from storage is by way of a "by byte" wrap around shifter so that the register pairs of the string (save for the last perhaps) are packed and contain only operand segments. <IMAGE>
GB7904816A 1978-03-16 1979-02-12 Data processing apparatus Expired GB2016752B (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US05/887,095 US4189772A (en) 1978-03-16 1978-03-16 Operand alignment controls for VFL instructions
US05/887,097 US4189770A (en) 1978-03-16 1978-03-16 Cache bypass control for operand fetches
US05/887,091 US4189768A (en) 1978-03-16 1978-03-16 Operand fetch control improvement

Publications (2)

Publication Number Publication Date
GB2016752A true GB2016752A (en) 1979-09-26
GB2016752B GB2016752B (en) 1982-03-10

Family

ID=27420522

Family Applications (1)

Application Number Title Priority Date Filing Date
GB7904816A Expired GB2016752B (en) 1978-03-16 1979-02-12 Data processing apparatus

Country Status (4)

Country Link
DE (1) DE2909987A1 (en)
FR (1) FR2423822A1 (en)
GB (1) GB2016752B (en)
IT (1) IT1164980B (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0075891A2 (en) * 1981-09-30 1983-04-06 Siemens Aktiengesellschaft Control circuit for operand processing
EP0144268A2 (en) * 1983-11-30 1985-06-12 Fujitsu Limited Method for controlling buffer memory in data processing apparatus

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3800292A (en) * 1972-10-05 1974-03-26 Honeywell Inf Systems Variable masking for segmented memory
US3858183A (en) * 1972-10-30 1974-12-31 Amdahl Corp Data processing system and method therefor
US3806888A (en) * 1972-12-04 1974-04-23 Ibm Hierarchial memory system

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0075891A2 (en) * 1981-09-30 1983-04-06 Siemens Aktiengesellschaft Control circuit for operand processing
EP0075891A3 (en) * 1981-09-30 1986-07-16 Siemens Aktiengesellschaft Control circuit for operand processing
EP0144268A2 (en) * 1983-11-30 1985-06-12 Fujitsu Limited Method for controlling buffer memory in data processing apparatus
EP0144268A3 (en) * 1983-11-30 1987-10-14 Fujitsu Limited Method for controlling buffer memory in data processing apparatus
US4779193A (en) * 1983-11-30 1988-10-18 Fujitsu Limited Data processing apparatus for writing calculation result into buffer memory after the writing of the beginning word of the read data
US4924425A (en) * 1983-11-30 1990-05-08 Fujitsu Limited Method for immediately writing an operand to a selected word location within a block of a buffer memory

Also Published As

Publication number Publication date
FR2423822A1 (en) 1979-11-16
FR2423822B1 (en) 1983-08-05
GB2016752B (en) 1982-03-10
DE2909987A1 (en) 1979-09-20
IT7920140A0 (en) 1979-02-13
IT1164980B (en) 1987-04-22

Similar Documents

Publication Publication Date Title
US6351804B1 (en) Control bit vector storage for a microprocessor
US5778423A (en) Prefetch instruction for improving performance in reduced instruction set processor
US5367705A (en) In-register data manipulation using data shift in reduced instruction set processor
US5454091A (en) Virtual to physical address translation scheme with granularity hint for identifying subsequent pages to be accessed
US5568624A (en) Byte-compare operation for high-performance processor
US6076158A (en) Branch prediction in high-performance processor
EP0459232B1 (en) Partially decoded instruction cache and method therefor
US5953520A (en) Address translation buffer for data processing system emulation mode
US5193167A (en) Ensuring data integrity by locked-load and conditional-store operations in a multiprocessor system
US6167509A (en) Branch performance in high speed processor
US20010010072A1 (en) Instruction translator translating non-native instructions for a processor into native instructions therefor, instruction memory with such translator, and data processing apparatus using them
US4454578A (en) Data processing unit with pipelined operands
US4891753A (en) Register scorboarding on a microprocessor chip
GB1443777A (en) Data processing apparatus
GB2200484A (en) Detecting and handling memory-mapped i/o by a pipelined computer
JPS56149646A (en) Operation controller
US5469551A (en) Method and apparatus for eliminating branches using conditional move instructions
GB1390384A (en) Microprogramme computer
US5313613A (en) Execution of storage-immediate and storage-storage instructions within cache buffer storage
US5226169A (en) System for execution of storage-immediate and storage-storage instructions within cache buffer storage
KR890008685A (en) Branching method
US7721073B2 (en) Conditional branch execution in a processor having a data mover engine that associates register addresses with memory addresses
Berenbaum et al. Introduction to the CRISP Instruction Set Architecture.
US5732235A (en) Method and system for minimizing the number of cycles required to execute semantic routines
GB2016752A (en) Data Processing Apparatus

Legal Events

Date Code Title Description
PCNP Patent ceased through non-payment of renewal fee