baum@Apple.COM (Allen J. Baum) (07/29/88)
[] The following is a list of patents granted to IBM relating to their RISC research. These are the patents that have made newpaper (and Usenet) headlines lately. These are the tip of the iceberg; IBM claims to have more coming, so this list is likely to be incomplete, and (shortly) obsolete. I don't have all the disclosures yet, but I'll comment on the ones I have. 4,569,016 Mechanism for implementing one machine cycle executable mask and rotate instructions in a primitive instruction set computing system (this patent is interesting because it contains the first 'published' examples of IBM/801 instruction formats. This patent was previewdwed at ASPLOS-1) 4,571,678 Register allocation and spilling via graph coloring (Watch out- now that they've published, and everybody started using it, they've been granted a patent. Most of the disclosure is PL/1 code that implements the algorithm) 4,589,065 Mechanism for implementing one machine cycle executable trap instructions in a primitive instruction set computing system 4,589,087 Condition register architecture for a primitive instruction set machine 4,630,195 Data processing system with CPU register to register data transfers overlapped with data transfer to and from main storage (IBM seems to have invented scoreboarding on this one, with the variation that instead of a bit/reg., there is a reg. containing the reg. number of the busy register. The patent includes a feature for cancelling outstanding 'loads' if a subsequent inst. clobbers the reg. Claim 1 includes all scoreboarding) 4,638,426 Virtual memory address translation mechanism with controlled data persistence 4,642,764 Method of developing formal identities and program bases in an optimizing compiler 4,642,765 Optimization of range checking 4,649,479 Device driver and adapter binding technique 4,656,582 Generating storage reference instructions in an optimizing compiler 4,656,583 Method for improving global common subexpression elimination and code motion in an optimizing compiler 4,718,008 Method to control paging subsystem processing in a virtual memory data processing system during execution of critical code sections 4,719,568 Hierarchical memory system including separate cache memories for storing data and instructions 4,730,249 Method to operate on large segments of data in a virtual 4,742,447 Method to control I/O accesses in a multi-tasking virtual memory virtual machine type data processing system 4,742,450 Method to share copy on write segment for mapped files More details as I get them -- {decwrl,hplabs,ihnp4}!nsc!apple!baum (408)973-3385