GB2172721A - Protective software - Google Patents

Protective software Download PDF

Info

Publication number
GB2172721A
GB2172721A GB08601808A GB8601808A GB2172721A GB 2172721 A GB2172721 A GB 2172721A GB 08601808 A GB08601808 A GB 08601808A GB 8601808 A GB8601808 A GB 8601808A GB 2172721 A GB2172721 A GB 2172721A
Authority
GB
United Kingdom
Prior art keywords
address
address word
input
memory
word
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.)
Withdrawn
Application number
GB08601808A
Other versions
GB8601808D0 (en
Inventor
John Angus Robertson
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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Publication of GB8601808D0 publication Critical patent/GB8601808D0/en
Publication of GB2172721A publication Critical patent/GB2172721A/en
Withdrawn 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/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

Data processor address bus (12) provides an input to an address memory (22) which retrieves an output address word for presentation via a translated address bus (18) as the address to a system memory. Control (20) determines the state of a flipflop (26) whose output is coupled to the most significant bit-line (24) of the input to the address memory (22). The address memory (22) is partitioned into an upper half where each input word received on the processor address bus (12) retrieves an unmodified version of itself and a lower half wherein each input word retrieves a unique modified version of itself where the order of the binary digits as shuffled according to a predetermined scheme. The flipflop (26) may be switched via interrupt or other control lines from a data processing unit or via a monitor monitoring the processor address bus (12) for one or more predetermined address words. The data processing unit thus controls whether a modified or unmodified address will be provided to the system memory. Alternatively, the unmodified address may be provided via a multiplexer instead of from the address memory (22) (Fig. 3). Address translation units may be cascaded (Fig. 4). <IMAGE>

Description

SPECIFICATION Method and apparatus for protecting soft ware The present invention relates to a method and apparatus for use in data processing equip ment wherein a processor unit is operative to store data in a memory and to retrieve data and programme step instructions from the memory via data and address buses. The pre sent invention particularly relates to a method and apparatus for rendering difficult copying of material held within the data processing equip ment and use of copied material.
Computer software is a valuable part of any data processing system and is subject to a risk of unauthorised copying and use.
Generally speaking, material used in one data processing system can be copied onto disc and used in another. Methods have been used employing specialised hardware to pre vent program copying. Such hardware can in terfere with "normal" operation of the data processing system within which it is resident and can require use of additional control sig nals not normally present in a conventional Von Neuman data processor as is currently understood in the art.
It is desirable therefore to provide a method and apparatus whereby the contents of a data processing system can be rendered unintelligi ble to attempts at conventional copying whilst allowing unimpeded and unslowed operation of the data processing system. It is further desirable that such a system employs signals already present in a data processor of the Von Neuman type, as currently understood in the art, for its control.
According to a first aspect, the present in vention consists in an apparatus for translating memory addresses in a data processing sys tem, said apparatus comprising a translation unit including: an address memory, operative to store a plurality of modified address words, coupled to receive an input address word, op erative in response to receipt thereof to select and recall one of said plurality of modified address words and operative to present said recalled, modified address word as an output address word; and a translation controller op erative, in response to receipt of a control signal, to select as said output address word either said recalled modified address word or said input address word unmodified.
According to a second aspect the present invention consists in a method for translating memory addresses in a data processing systerm, said method including the steps of: em ploying an address memory to store a plurality of modified address words; receiving an input address word as an address input to said ad dress memory, said address memory being operative in response thereto to select and recall one of said plurality of stored, modified address words; and, in response to receipt of a control signal,selecting as an output address word either said selected, modified address word or said input address word.
In a first preferred embodiment a translation unit is provided for use between the address bus of a data processor unit and the main system memory. The translation unit comprises a memory wherein alternative addresses are stored. The data processor address bus is coupled as the input address of the address memory and retrieved addresses from the address memory are coupled onto the address bus for the main system memory.
The contents of the address memory are divided into an upper and a lower half. A master address line controls whether the data processor address bus addresses the upper or the lower halfbof the address memory. The upper half contains output addresses identical with the input addresses from the data processor address bus. The lower half of the address memory contains modified addresses wherein the bit-order of the input address word is moved around so that each input address word addresses its own unique stored address word. When retrieved the stored address word is passed on to the system memory.
The master address line is derived from a control line passing through a flipflop which is operative to receive and hold a command from the data processor for either the unmodified addresses in the memory upper half or the modified addresses in the memory lower half now provided as the system memory address.
In a second preferred embodiment the address memory contains only modified addresses and the retrieved modified addresses from the address memory are provided as a first input to a multiplexer. The input address word which also addresses the address memory is provided as a second input to the multiplexer and the multiplexer is controlled by a control line once again passed through a flipflop to select either the modified addresses from the address memory or the input address word from the data processing unit.
In both the first and second embodiment the flipflop can be of a variety which is set and thereafter re-set depending upon the receipt of first and second instructions. As an alternative, the flipflop may be of a variety set to toggle between alternate states on successive instances of receipt of a control signal.
The control signals to the flipflop can be derived from the input address word via a monitor scanning the input address word for a predetermined word or words.
Both the first and second preferred embodiment may be concatenated to form a multielement translation unit where the output address word of one translation unit provides the input address word of the following tran slation unit in the chain.
The invention is further described, by way of an example, by the following description in conjunction with the appended drawings in which: FIG. 1 shows a block schematic diagram of a translation unit according to the present invention in place in a data processing system.
FIG.2 shows a schematic block diagram of a first preferred embodiment of the present invention.
FIG.3 shows a schematic block diagram of a second preferred embodiment of the invention, and FIG.4 is a schematic block diagram show ing how translation units can be cascaded.
FIG. 1 shows the context of use of the in vention.
A data processing unit 10 provides a pro cessor address bus 12 intended to provide address -input to a system memory 14 wherein programme steps and data are stored. In addition to fast memory the system memory 14 can include disc drives and other peripheral devices.
An address translation unit 16 is interposed between the processor address bus 12 and the system memory 14 and provides, on a translated address bus 18 under control of signal 20 from the data processing unit 10 either the input address word received on the processor address bus 12 unmodified or a translated modified address for use by the system memory 14.
FIG.2 shows a schematic block diagram of a first preferred embodiment of the address translation unit 16 shown in FIG. 1.
The processor address bus 12 is provided as an addressing input to an address memory 22. The most significant bit-line 24 addressing the address memory 22 is controlled by the -output of a flipflop 26 whose state is deter mined by the control signal 20 from the data processing unit 10.
When the most significant bit-line 24 is logi cally false the lower half of the address mem ory 22 is addressed by the input address words received on the processor address bus 12 and when the most significant bit-line 24 is logically true the upper half of the address memory 22 is addressed by the processor ad dress bus 12. Whichever storage location in the address memory 22 is addressed, its re trieved contents are presented as output on the translated address bus 18.
The upper half of the address memory 22 contains unmodified addresses. That is to say, each input address word received on the pro cessor address bus 12 retrieves from the ad dress memory 22 an output address word 18 which is identical with itself so that the tran slation unit 16 is effectively invisible save for a small delay caused by the presence of the address memory 22 which is chosen to be a high speed memory.
The lower half of the address memory 22 contains modified addresses where each input address word received from the processor address bus 12 addresses and causes the retrieval of an output address word on the translated address bus 18 where the order of the binary digits has been swapped around according to a predetermined scheme. Thus each input address word received from the processor address bus 12 when the most significant bit-line 24 is logically false addresses and causes the retrieval of an address word which is unique to itself. No input word will produce an output word which can be retrieved by any other input word.
FIG.3 shows a block schematic diagram of the second preferred embodiment of the present invention.
The processor address bus 12 from the data processing unit 10 is provided as input to a translation address memory 28 storing only modified addresses such as would be stored in the lower half of the address memory 22 of FIG.2.
The processor address bus 12 is also coupled as input to a monitor 30 operative to scan the processor address bus 12 for one or more predetermined input addresses thereon.
In response to receipt of a pre-determined input address the monitor 30 provides a first output 32 coupled to the flipflop 26 and in response to the receipt of a second predetermined input address word from the processor address bus 12 the monitor 30 may optionally provide a second output 34 again used to control the flipflop 26.
The translation address memory 28 provides a retrieved modified address on a memory output bus 36 coupled as a first input to a multiplexer 38. The processor address bus 12 is coupled as a second input to the multiplexer 38. The flipflop 26 signals its state on a flipflop control line 40 which is coupled as a controlling input to the multiplexer 38. The multiplexer 38 responds to state of the flipflop 26 either by selecting the contents of the memory output bus 36 to be provided on the translated address bus 18 as the output address word or by selecting the input address word provided on the processor address bus 12 on the translated address bus 18 as the output address word.
The flipflop 26 may be set by the first output 32 of the monitor 30 and reset by the second output 34 of the monitor 30. Alternatively the flipflop 26 may be wired to toggle and only one output 32 provided by the monitor 30 causing the flipflop 26 to toggle between first and second selection states.
In both the first and second embodiments the control signal or signals to the flipflop 26 can be provided using a monitor 30 as shown in FIG.3, using interrupt lines and other control lines normally found in the data processing unit 10, or can exploit a combination of both.
At commencement of operation the flipflop 26 is set to an initial state. During, for example, a power-on reset the flipflop 26 in both the first and second preferred embodi ments will be switched to cause the output address word on the translated address bus 18 to be identical with the input address word received on the processor address bus 12.
Thereafter software control operates to select either the translated modified address or the unmodified address dependently upon the con tents of the programme.
FIG.4 shows a schematic block diagram indi cating how translation units 16 can be cas caded with the translated address bus 18 of one translation unit earlier in the chain provid ing the input address word to that translation unit 16 next later in the chain. The data pro cessing unit 10 may provide the control signal or signals 20 to the translation units 16 in the chain either via interrupt or other data pro cessing register lines or by monitoring of the input address word as shown in FIG.3.
The present invention includes all combina tions of the features shown in FIGS.2 and 3 of this application used singly or together and includes the address translation units 16 of FIG.4 comprising translation units embodying different modified versions as above described incorporating singly or together those features of FIGS. 2 and 3.
With reference to FIG.4 the translation units 16 can be operated all in the straight through mode where unmodified addresses are pro vided as output or any one or more of them can be caused to provide translation. Each translation unit 16 can contain a different tran slation table and by selecting different transla tion units 16 in the chain at different times to provide its translation table a range of differ ent translation tables can selectively be ac cessed by the data processing unit 10 to gether with selectable combinations of those tables by causing more than one translation unit 16 in the chain to provide translated ad dresses at any one time.
The address memory 22 or the translation address memory 28 can be either a pre-pro grammed Read-Only-Memory whose contents are predetermined and fixed or a programma ble memory such as a Random-Access-Mem ory which can be loaded with a translation table of choice. In this latter instance the memory 22, 28 would require, in addition to those features shown in FiGS.2 and 3 to be in receipt of a data bus from the data processing unit 10 whereby the data processing unit 10 could be operative by strobing different input addresses and presenting different data on the data bus to load the memory 22, 28 prior to its use.

Claims (20)

1. An apparatus for translating memory ad dresses in a data processing system, said apparatus comprising a translation unit including: an address memory, operative to store a plurality of modified address words, coupled to receive an input address word, operative in response to receipt thereof to select and recall one of said plurality of modified address words and operative to present said recalled, modified address word as an output address word; and a translation controller operative, in response to receipt of a control signal, to select as said output address word either said recalled modified address word or said input address word unmodified.
2. An apparatus according to Claim 1 wherein said address memory is operative to store a plurality of unmodified address words, and wherein said translation controller is operative to command said memory to select, as a recalled address word, only from among said plurality of unmodified address words for presentation as said output address word.
3. An apparatus according to Claim 1 wherein said translation controller comprises a multiplexer, coupled to receive said recalled, modified address word as a first data input, coupled to receive said input address word as a second data input, and operative to select as output either said first data input or said second data input.
4. An apparatus according to any of the preceding claims wherein said translation con troller-comprises a control register operative to enter and retain a selectable one of a first or second selection state in response to receipt of said control signal.
5. An apparatus according to claim 4 wherein said control register is operative to alternate between said first and second selection states in response to successive instances of receipt of said control signal.
6. An apparatus according to any of the preceding claims wherein said translation controller is coupled to monitor said input address word and is operative to recognise receipt of said control signal whenever said input address word is a predetermined input address word.
7. An apparatus according to any of claims 1 to 5 wherein said translation controller is coupled to receive as said control word a signal from a control line.
8. An apparatus according to claim 7 wherein said control line is an interrupt line from a data processor.
9. An apparatus according to any of the preceding claims including a plurality of concatinated translation units, all but a first translation unit in the chain being coupled to receive, as said input address word, an output address word from a translation unit earlier in said chain and all but a last translation unit in the chain being coupled to provide said output address word as said input address word to a translation unit later in the chain.
10. An apparatus substantially as described with reference to the appended drawings.
11. A method for translating memory addresses in a data processing system, said method including the steps of: employing an address memory to store a plurality of modified address words; receiving an input address word as an address input for said address memory, said address memory being operative in response thereto to select and recall one of said plurality of stored, modified address words; and, in response to receipt of a control signal, selecting as an output address word either said selected, modified address word or said input address word.
12. A method according to Claim 11 including the steps of employing said address memory to store a plurality of unmodified address words and, when it is desired to select, as said output address word, said input address word, causing said address memory to respond to said input address word by selecting and recalling only from among said plurality of unmodified address words.
13. A method according to Claim 11 including the step of employing a multiplexer to select and provide as said output address word either said recalled, modified address word from said address memory or said input address word.
14. A method according to any of claims 11 to 13 including the step of employing a control register operative to enter and remain in a selectable one of first and second selection states in response to receipt of said control signal.
15. A method according to Claim 14 including the step of causing said control register to alternate between said first and second selection states in response to successive instances of receipt of said control signal.
16. A method according to any of claims 11 to 15 including the steps of monitoring said input address word for a predetermined address word and deeming said control signal to have been received when said predetermined address word is detected.
17. A method according to any of claims 11 to 15 including receipt of said control signal from a control line.
18. A method according to claim 17 wherein said control line is an interrupt line from a data processor.
19. A method according to any of claims 11 to 18 including the steps of providing said output address word as the input address word for a further address memory.
20. A method substantially as described with reference to the appended drawings.
GB08601808A 1985-03-21 1986-01-24 Protective software Withdrawn GB2172721A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB858507427A GB8507427D0 (en) 1985-03-21 1985-03-21 Prevention of soft & hardware copying

Publications (2)

Publication Number Publication Date
GB8601808D0 GB8601808D0 (en) 1986-02-26
GB2172721A true GB2172721A (en) 1986-09-24

Family

ID=10576419

Family Applications (2)

Application Number Title Priority Date Filing Date
GB858507427A Pending GB8507427D0 (en) 1985-03-21 1985-03-21 Prevention of soft & hardware copying
GB08601808A Withdrawn GB2172721A (en) 1985-03-21 1986-01-24 Protective software

Family Applications Before (1)

Application Number Title Priority Date Filing Date
GB858507427A Pending GB8507427D0 (en) 1985-03-21 1985-03-21 Prevention of soft & hardware copying

Country Status (1)

Country Link
GB (2) GB8507427D0 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2222899A (en) * 1988-08-31 1990-03-21 Anthony Morris Rose Computer mass storage data protection
GB2248702A (en) * 1990-10-11 1992-04-15 Viserge Limited Protection of software in ROM
WO2002093387A2 (en) 2001-05-17 2002-11-21 Koninklijke Philips Electronics N.V. Method and device for protecting data transmission between a central processor and a memory

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2140592A (en) * 1983-04-29 1984-11-28 Philips Nv Memory unit comprising a memory and a protection unit
EP0132129A2 (en) * 1983-07-14 1985-01-23 BURROUGHS CORPORATION (a Michigan corporation) Address translation buffer

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2140592A (en) * 1983-04-29 1984-11-28 Philips Nv Memory unit comprising a memory and a protection unit
EP0132129A2 (en) * 1983-07-14 1985-01-23 BURROUGHS CORPORATION (a Michigan corporation) Address translation buffer

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
WO A1 81/02480 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2222899A (en) * 1988-08-31 1990-03-21 Anthony Morris Rose Computer mass storage data protection
US5144660A (en) * 1988-08-31 1992-09-01 Rose Anthony M Securing a computer against undesired write operations to or read operations from a mass storage device
GB2222899B (en) * 1988-08-31 1993-04-14 Anthony Morris Rose Securing a computer against undesired write operations or from a mass storage device
GB2248702A (en) * 1990-10-11 1992-04-15 Viserge Limited Protection of software in ROM
GB2248702B (en) * 1990-10-11 1994-11-02 Viserge Limited Data-processing apparatus
WO2002093387A2 (en) 2001-05-17 2002-11-21 Koninklijke Philips Electronics N.V. Method and device for protecting data transmission between a central processor and a memory
WO2002093387A3 (en) * 2001-05-17 2003-01-30 Koninkl Philips Electronics Nv Method and device for protecting data transmission between a central processor and a memory

Also Published As

Publication number Publication date
GB8507427D0 (en) 1985-05-01
GB8601808D0 (en) 1986-02-26

Similar Documents

Publication Publication Date Title
US4870571A (en) Intercomputer communications based on message broadcasting with receiver selection
KR100563222B1 (en) Memory access protection
US4080651A (en) Memory control processor
US5603011A (en) Selective shadowing and paging in computer memory systems
US4520441A (en) Data processing system
US4675813A (en) Program assignable I/O addresses for a computer
US4719564A (en) Interpreter linkage system for linking extension interpreters to a basic interpreter
GB2172721A (en) Protective software
US5535404A (en) Microprocessor status register having plural control information registers each set and cleared by on and off decoders receiving the same control data word
EP0338564A3 (en) Microprogram branching method and microsequencer employing the method
GB2188759A (en) Data processor with op code early comparison
US4089051A (en) Alternative direct and indirect addressing
JPH0370262B2 (en)
US5933856A (en) System and method for processing of memory data and communication system comprising such system
US5293605A (en) Apparatus to supplement cache controller functionality in a memory store and a cache memory
US5161217A (en) Buffered address stack register with parallel input registers and overflow protection
EP0509720B1 (en) Peripheral device address control system
JPS6165334A (en) Specification system for start address
US5438667A (en) Method for data transmission and apparatus for implementation of this method
CA1130009A (en) Microinstruction logic means
KR900015005A (en) Ring Reduction Logic Mechanism
JPH0528056A (en) Memory device
JPH02148240A (en) Processor
JPS6315626B2 (en)
JPH02121043A (en) Data processor

Legal Events

Date Code Title Description
WAP Application withdrawn, taken to be withdrawn or refused ** after publication under section 16(1)