CN1076378A - Be used for the external storage system that video game system etc. has programmable graphics processor - Google Patents
Be used for the external storage system that video game system etc. has programmable graphics processor Download PDFInfo
- Publication number
- CN1076378A CN1076378A CN92112795A CN92112795A CN1076378A CN 1076378 A CN1076378 A CN 1076378A CN 92112795 A CN92112795 A CN 92112795A CN 92112795 A CN92112795 A CN 92112795A CN 1076378 A CN1076378 A CN 1076378A
- Authority
- CN
- China
- Prior art keywords
- instruction
- register
- ram
- program
- address
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3814—Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3877—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
- G06F9/3879—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/20—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of the game platform
- A63F2300/203—Image generating hardware
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Controls And Circuits For Display Device (AREA)
- Image Generation (AREA)
- Image Processing (AREA)
- Advance Control (AREA)
- Processing Or Creating Images (AREA)
- Multi Processors (AREA)
- Complex Calculations (AREA)
Abstract
The invention discloses a kind of full programming graphic microprocessor, it is configured in the external memory unit (for example plug-in type TV game card), is used in combination with three-bus structure on being disposed at game card.This graphics coprocessor can be carried out from program ROM, the program of the cache RAM of external RAM or itself inside, has the instruction set that realizes relevant 3-D figure arithmetical operation, for example comprise by specialized hardware and carrying out the instruction of single pixel plotting in the main system character image shows, set up " virtual " bit map, and make its 16 general registers all can be by the primary processor access with the primary processor reciprocation.
Description
The present invention puts it briefly and relates to a kind of information processor that comprises the unique external memory unit that wherein is equipped with programmable processor.The present invention relates in particular to a kind of dismountable external memory unit with program storage, a program storage program stored part is carried out by host processing system such as video game system, and a part is carried out by the programmable microprocessor that designs for the high speed graphic disposal ability that strengthens main system.
Present patent application with the application Ser. No of being submitted to by people such as mulberries simultaneously is _, _ be entitled as the patent application (attorney is 1248-4) of " be used for video game system etc. and have the programmable graphics processor of pixel " to character transformation hardware, with the application Ser. No of submitting to by people such as mulberries simultaneously be _, _ to be entitled as the patent application (attorney is 1248-5) of " being used for the graphic process unit that video game system etc. has the memorizer control circuit of enhancing " relevant.
8-bit microprocessor and the corresponding electronic game machine that shows the prior art of processing subsystem in the video game control desk, be equipped with.Generally by in game card, taking advantage of 8 box formations store character in advance, and utilize the various programmable combination of these characters of storing in advance to set up panel to show and produce figure with 8.The video game system of this class prior art generally has some " moving targets " or " sprite " the mobile ability that makes whole display background and player's control.
The system of this class prior art can not realize such video game: comprise the moving target that is constituted by polygon in these recreation, and these targets must " repaint " by manipulation (as rotation) and at every frame.For example, 8 bit processors of the prior art in this type systematic and relevant demonstration treatment circuit can't carry out required computing make three-dimensional, based on the ground rotation of polygonal target effective or the target that makes this class rotation suitably convergent-divergent to produce 3-D type special-effect.The present application people recognizes that exquisite figure needs individual element ground renewal panel and finishes the complex mathematical computing on the basis in real time.The electronic game machine based on character of this class prior art can't be finished these tasks.
8 electronic game machines of prior art can not be finished other graph technologies that need individual element ground to upgrade panel rapidly effectively.For example, this type systematic can't make a target images (after this be called quality reflection (texture mapping)) to a part of polygon that shows as another display-object at three dimensions effectively.
For the graph ability of 8 machines surpassing prior art, video game system has been designed to adopt 16 bit processors with better function.These class 16 bit processors can be video game system provides the exquisiter figure of processing required mathematics function.For example, these systems can generate more senior colour and obtain better graphics resolution.16 electronic game machines of this class are based on the system of character, can realize can pre-rendered one-tenth based on the multiple video game of the figure of character or sprite.16 electronic game machines of this class can also make background plane high-speed mobile and back or former configuration on these planes with multicolour that moving target is arranged.
Yet 16 electronic game machines of this class prior art do not realize having the advanced television recreation of 3-D type special-effect, and these recreation will show the complex target of being formed and being needed every frame to change by polygon.For example, 16 machines based on character of this class prior art can't realize needing many must frame by frames the amplification or the target of the comprehensive rotation dwindled or the recreation of sprite.The present application people recognizes this class recreation based on polygonal target that will realize relating to comprehensive rotation and convergent-divergent effectively, and this class is inserted based on polygonal target with suitable data in border and individual element ground that must drawing polygonal.This generic task must carry out on individual element ground, handles so will spend a large amount of time.
In prior art, dismountable game card has been done improvement, the bigger program memory address space of scope that the existing address wire number that addressable ratio of existing processor and master microprocessor are linked is allowed, thus obtain more senior recreation.For example, 8 of this class prior art systems have adopted the game card that comprises the multi-memory controller chip that can carry out memory bank switching and other additional functions.Yet this class relates to the chip of memory bank switching can't make the high speed graphic of the competent above-mentioned character of video game system handle.
The present invention is directed to the problems referred to above of prior art, provide a kind of uniqueness, full programming, be designed to be provided in dismountable external memory unit that main information processing system is connected in graphic microprocessor.In the described here one exemplary embodiment, the present invention comprises main video game system and is equipped with in the video game system of video game card of graphic microprocessor one realizing.
Graphic microprocessor described here and video game system have many uniquenesses, excellent features, below these features of summary.
According to the present invention, unique graphic process unit is connected with master microprocessor in the plug-in unit mode.For making the processing speed maximum, graphic process unit can with master microprocessor with parallel mode work.In an one exemplary embodiment, the game card that graphics coprocessor is housed also comprises read-only memory (ROM) and random-access memory (ram).
Graphics coprocessor of the present invention need and be made arbitration from the master microprocessor reading of data between the two to store transaction at itself.This processor can executive program be to allow high speed processing simultaneously with master microprocessor, and the video game system of prior art is to be beyond one's reach before this.
Graphics coprocessor of the present invention be configured in the work that combines of three-bus structure on the game card, thereby by optimize primary processor and game card processor effectively use interior RAM of card and ROM memory device ability so that these memories be utilized effectively.
Full user program graphics coprocessor of the present invention comprises that one is designed to allow the unique command collection of high speed processing.The arithmetic operation relevant with the 3-D figure implemented in this instruction energy collecting effectively, for example has the special instruction of being carried out by specialized hardware in order to mark and draw single pixel in the demonstration of the character image of main video game system.
Many instructions in this instruction set can be carried out in a machine cycle, and are designed to be stored in the byte of program ROM.Certainly, these instructions can have stronger function by adopting special-purpose prefix instruction.
This instruction set has unique instruction based on pixel, follow procedure person's viewpoint, even main system is based on character, these instructions also can be by allowing that one " virtual " bit map is set up in the addressing of single pixel.This pixel data is converted to the character data of main system based on 16 general forms that adopt of machine of character by graphic process unit when scanning.Like this, though for example the programmer uses unique " marking and drawing (PLOT) " instruction to mark and draw pixel, when relevant data were read RAM, these data were converted to the form based on character that 16 master machines can adopt.Special-purpose pixel plotting hardware is carried out this instruction and is implemented to make high speed 3-D type figure effectively.
Graphics coprocessor of the present invention also has unique " cache (CACHE) " instruction and cache store is carried out from cache RAM taking-up by graphics coprocessor with the program command that allows to be stored in program ROM at high speed towards the storage function.That part of program that this high-speed cache instruction allows the programmer will carry out at a high speed by pointing out just can automatically begin the cache memory executive program from graphics coprocessor inside.
This instruction set also has and is used for the auxiliary special instruction that the required graph technology of video game with high-quality 3-D type feature is programmed.The instruction of this class comprises that above-mentioned pixel marks and draws instruction and merge (MERGE) instruction, be used for making being stored in the sub-image data in the different registers and connecing, with the rotation of more effectively satisfying display-object or/and the quality reflection.
Special instruction available buffer data are to allow master microprocessor of the present invention and graphics coprocessor parallel processing.For example, adopt a special instruction to improve the speed of service, in game card, adopt slow relatively ROM of access time with compensation.In this case, as long as graphic process unit uses a kind of predetermined general register (for example, register R14 in the one exemplary embodiment) of quoting to begin automatically from the instruction of ROM reading of data.When this class ROM access takes place, also can carry out other code.After some cycles, the data that read are just available.Certainly, meanwhile processor need not to wait these data, and can finish other tasks, therefore can write the very fast code of execution.
Connect for handling subprogram effectively, graphics coprocessor of the present invention comprises that also connections (LINK) instruct, in order to the address of the instruction that will will carry out after the end of subroutine counter R15 that loads program in this finish time.
Instruction set have RAM return deposit (store-back) instruction.According to this instruction, after data were read from RAM and operated with these data, the address ram that the RAM controller in graphics coprocessor used in corresponding last time began more returning of new data and deposits operation.The returning of this cycle deposited instruction and can be advantageously used in effectively more new data block.
Graphics coprocessor of the present invention also has the instruction that can utilize after the least significant byte and then most significant byte and automatically read or write from RAM.This function can help to provide compatible any data transposition that need not to carry out for the data with the different-format storage when programming.
Graphic process unit of the present invention can be set at various plotting mode by revising the internal processor status register.These modes comprise that each pixel that replaces has the rolling flowing mode that can produce chiaroscuro effect able to programme of different colours.But another selection mode allows color is carried out high nibble and the selection of low nibble, makes two sprites can be stored in the space that sprite of a certain former cause occupies in the memory.
The present invention has the hardware characteristics of many uniquenesses.For example, graphics coprocessor has the special-purpose circuit of marking and drawing, and it has the pixel data buffering of enhancing by utilizing monolithic RAM.This data buffering can make to be read or writes treating capacity to outside data RAM and reduce to minimum, and improves the polygon that shows is filled out speed with suitable data.
Except the playback buffer feature that in a single day any visit that couple register R14 is arranged is as mentioned above just started, graphics coprocessor of the present invention also has the buffer attribute of writing, available buffer wants to write the data of game card RAM, so that the central processing unit of mario chip (Mario chip) is carried out other instruction as soon as possible.
Graphics coprocessor of the present invention also comprises all accessible 16 registers of graphic process unit and host processing system, R0-R15.Register R0 is the default register that need not specially to indicate and play the accumulator effect in instruction.R15 is as program counter.Register R14 is above mentioned, just begins automatically from the register of ROM reading of data as if accessed.Special-purpose prefix instruction can be used to definition source and/or destination register.The reciprocation of graphics coprocessor of the present invention and main coprocessor makes that the register of graphics coprocessor can be by the primary processor access.
The three-bus structure of the uniqueness that is associated with graphics coprocessor allows higher degree of parallelism.These 3 buses comprise host processor bus, ROM bus and RAM bus.These buses are also can using simultaneously of separating physically.Every bus comprises address wire, data wire and control line.Host processor bus comprises address wire, data wire and control line, and the signal of relative broad range required in the graphics coprocessor is provided.Adopt this bus-structured graphic process unit of the present invention can carry out from program ROM the program of the high-speed cache RAM of external RAM or itself inside.
Graphics coprocessor and master microprocessor carry out interface with all arbitration modes.In this respect,, just set a kind of arbitration mode, show that primary processor abandoned the ROM and the RAM of game card are conducted interviews by primary processor by the logical one of on a predetermined graphic process unit status register locations, packing into.
The present application people recognizes, although primary processor because of correspondingly to status register set abandoned ROM and RAM are visited under this occasion, interrupt still can taking place, primary processor can begin visit to ROM to read the address of the program of handling this interruption.In this case, graphic process unit offers master microprocessor is not the address of program ROM but the address of work RAM, allows the work RAM of main processor accesses itself inside.This top technology stops primary processor when graphics coprocessor is just being carried out program from program ROM this program ROM to be carried out addressing.
When primary processor need be visited game card RAM, make the set of graphics coprocessor status register make graphics coprocessor can not visit RAM, make primary processor from any needed information of RAM access by this, graphics coprocessor being switched to afterwards can be to the state of RAM visit again.Yet, because of the faster event of its processing speed wishes that coprocessor maximally utilises ROM and the RAM on the card.
The Pixel Information that graphics coprocessor of the present invention is designed to be loaded among the character data RAM is transferred to primary processor image RAM effectively for showing.But image RAM can not be by any game card bus by the graphics coprocessor direct access.Must utilize direct memory access (DMA) circuit of primary processor to carry out this passing on.
Graphics coprocessor of the present invention receives some clock signals of autonomous information processing system.Timing in the graphics coprocessor is by a driving in these clocks.
As the feature of matching of the present invention, circuit in the graphics coprocessor allows processor to reconfigure, considering change in the future, and the signal condition of receiving by OPADD line (and then they be used as the configuration settings incoming line after the power-on reset) is depended in these changes.The apolegamy item that is connected with these address wires is set the value of resistance and is read by graphics coprocessor.These signals for example can be used to define the kind of the RAM chip that uses with graphic process unit, as static RAM (SRAM) or dynamic ram.
Detailed description to following one exemplary embodiment of the present invention can make form of ownership of the present invention and advantage be easier to understand in conjunction with the accompanying drawings.
Fig. 1 is the block diagram of the exemplary external storage system of one exemplary embodiment according to the present invention;
Fig. 2 is the block diagram of the exemplary host processing system used of the graphics coprocessor with at present preferable one exemplary embodiment;
Fig. 3 is the perspective view of exemplary physical configuration of the base member of the game card of integrated graphics coprocessor and built-in host processing system;
Fig. 4 A and Fig. 4 B are the block diagrams according to the graphics coprocessor of present preferable one exemplary embodiment;
Fig. 5 is stated as starting graphics coprocessor operation and the flow chart of the sequence of operation carried out by host processing system;
Fig. 6 is the more more detailed block diagram of the ALU shown in Fig. 4 A;
Fig. 7 is the more more detailed block diagram that the exemplary pixel of Fig. 4 A shown type is marked and drawed circuit;
Fig. 8 A illustrates the block diagram of marking and drawing controller input signal that receives and the output signal of marking and drawing the controller generation;
Fig. 8 B is that pixel is marked and drawed the colour matrix unit in the colour matrix of circuit;
Fig. 8 C describes relevant pixel and marks and draws the timing of circuit, control and data signal;
Fig. 9 is the more more detailed block diagram of the RAM controller shown in Fig. 4 A;
Fig. 9 A illustrates about the exemplary timing of RAM controller shown in Figure 9, control and data signal;
Figure 10 is the circuit diagram of arbitrated logic shown in Figure 9;
Figure 11 is the figure of synchronous circuit again in the one exemplary embodiment of graphics coprocessor of the present invention;
Figure 12 is the timing signal of the synchronous circuit again of relevant Figure 11;
Figure 13 is the more detailed block diagram of the ROM controller of graphics coprocessor of the present invention;
Figure 14 is the block diagram of the cache controller of the graphics coprocessor of one exemplary embodiment according to the present invention;
Figure 15 A is the block diagram that and instruction is deciphered relevant circuit in the graphics coprocessor of the present invention;
Figure 15 B illustrates the exemplary timing signal of the work usefulness of the look-ahead logic among the key diagram 15A;
Figure 16 and 17 is block diagrams of register controlled logic that the graphics coprocessor of the one exemplary embodiment according to the present invention is shown;
Figure 18 is described in the flow chart of finishing the operation sequence of graphics coprocessor in the polygon generation task;
Figure 19,20 and 21 be used for illustrating according to one exemplary embodiment of the present invention can generate based on the convergent-divergent of polygonal target and the exemplary demonstration of rotation feature.
According to one exemplary embodiment of the present invention, limited company of graphics coprocessor of the present invention and Nintendo (U.S.) is in 16 video game system reciprocations of the commodity SFC entertainment systems (Super NES) by name of market sale.The application number that this SFC entertainment systems was submitted on April 10th, 1991 is 07/651, the application number of submitting in 265 the patent application that is entitled as " video process apparatus " and on August 26th, 1991 is 07/749,530 the explanation that obtains part in " direct memory access device and its employed External memory equipment " that is entitled as.These apply for merger by reference and significantly in this application.Should be appreciated that the present invention is not limited only to the application relevant with Super NES, can also be used for the information processing system that other video game system or other non-video game are used.
The convenience in order to quote only is called " Mario chip (Mario Chip) " after this according to the graphic process unit of this one exemplary embodiment.Mario Chip Packaging described in the at present preferable one exemplary embodiment is in the video game card.Should be appreciated that it is not that the present invention is necessary that Mario chip and program storage are placed in the identical cartridge as long as the Mario chip is connected with Main Processor Unit with program storage in use.
Fig. 1 illustrates the exemplary video game card/external storage system of the one exemplary embodiment according to the present invention.This game card has the printed circuit board (PCB) (not drawing on the figure) that the whole elements of Fig. 1 are installed on it.This jig has the connector electrod-array 1 that is arranged in the printed circuit board (PCB) insertion end to pass the signal to or to send out Super NES master console.Connector electrod-array 1 is held by the connector that matches that is installed in the Super NES master console.
According to this one exemplary embodiment, the Mario chip (graphics coprocessor) 2 that is provided on the game card is integrated circuit (IC) chip of 100 to 128 pins.The Mario chip receives many control, address and data-signals that come from host processing system (for example Super NES).For example, the Mario chip receives 21MHz clock input from host processing system by pin P112, receives through pin P117 to be 21MHz(or another preset frequency) the system clock input.This system clock input for example can be used to be provided for to the Mario chip memory timing information and the clock information that is provided as the operation timing in the Mario chip of host CPU storage access.Mario chip 2 also comprises the external clock input (pin P110) that can match, and Mario chip and external crystal-controlled oscillation 4 are coupled together, and drives MarioCPU with the clock frequency higher than the 21MHz that receives from main system.
The address of host CPU input (HA) is connected to Mario chip 2 through pin P37 to pin P62 from the address bus of host processing system (for example Super NES/ graphics processing unit PPU).Come the data inputs (HD) of autonomous system to be connected to Mario chip 2 from the host CPU data/address bus through pin P65-P72 similarly.Mario chip 2 from host CPU reception memorizer update signal RFSH, receives reset signal through pin P118 through P119 in addition, receives through pin P104, P105 and reads and write control signal.This Mario chip can produce interrupt request singal IRQ and this signal IRQ is connected to Super NES through pin P120.Also can accept other control signal, for example receive the ROM SEL signal that can start main program ROM10 visit through pin P106 from Super NES.This game card has and the certified processor of the Super NES certified processor 3 at incoming line I, output line O and reset line R swap data in addition.The certified processor 3 and the safety system that are used for authenticating game card can be U.S. Pat P4, the sort of shown in 799,635, this patent by reference and merger in this.
The Mario chip through address ram bus (RAM A), and address ram pin P74-P91 be connected with RAM8 with RAM6 with RAM data/address bus (RAM D) and data pins P93-P100.These RAM utilize respectively the row address that connects through pin P90-P91 and column address gating signal (RAS CAS) carry out the dynamic memory of part control.Can adopt one or more static RAM (SRAM)s to replace dynamic ram, at this moment pin P90 and P91 will be used under the situation that does not have row address and column address gating signal, and address signal is connected to their RAM separately.Allow write control signal WE correspondingly to deliver to RAM6 and RAM8 through pin P107.
(R W) is connected with the Mario chip with P105 by the host CPU generation and through pin P104 the reading and writing control signal.The Mario chip is read the kind that can determine the memory access operations that Super NES CPU will carry out with writing line by monitoring these.All monitor by the Mario chip similarly from all address wires and the control line of main frame in fact, to grasp the operation that host CPU will carry out.Monitored by ROM and RAM address signal that the Mario chip receives, and they are delivered to corresponding storage device.In this respect, the ROM address links to each other with program ROM 10 with pin P2 to P26 through the ROM address bus, and address ram links to each other with RAM8 with RAM6 through pin P74 to P91.ROM that comes out from host CPU and the input of RAM data respectively through ROM data/address bus and pin P28-P35 deliver to ROM10 and through RAM data/address bus and pin P93 to P100 with deliver to RAM6 and RAM8.
Should be realized that the Mario chip except with ROM described here and RAM the use that can also combine with different storage device than the width scope.For example can expect the use that combines expediently of Mario chip and the video game system that adopts CD ROM.
For example be not to adopt ROM10 in Fig. 1, and be to use the CD ROM(not shown) come the store character data, program command, image, figure and voice data.A kind of CD player seat (also not shown) of general type is coupled together suitably with Mario chip 2, be access data reception memorizer address signal and/or pass through data/address bus P28-P35 reception instruction by address bus P2-P26.As for CD player seat and concrete structure and the details of operation of CD ROM storage system is that those skilled in the art are well-known.The advantage that CD ROM storage brings is to make the carrying cost of every byte information to reduce significantly.The cost of storage data can be gone up one of low percentage hundred to 1,000 than being stored in semiconductor ROM.Unfortunately CD ROM storage access/readout time also long than semiconductor ROM.
The Mario chip adopts the information on three-bus at least to allow the parallel three-bus structure that utilizes.In this respect, in game card shown in Figure 1, the Mario chip is with ROM bus (comprising ROM data wire, ROM address and control line), and RAM bus (comprising address ram line, data wire and control line) links to each other with host processor bus (comprising host address line, data wire and control line).
The Mario chip structure allows to take place pile line operation to optimize throughput.In this respect, the Mario chip can be handled other data simultaneously when reading a data byte from ROM, also simultaneously writes other data to RAM, thereby can handle the figure of relevant 3-D type very effectively.As will be described as further below, inner 16 bit architectures that adopt of Mario chip 2 also are designed to and 8 ROM10 and chip interfaces such as RAM6, RAM8.In inside, all internal data buses and internal register are 16.Read and write RAM6, RAM8 all by " buffering " and generally can not slow down program and carry out from ROM10.
Similarly, Mario chip 2 can and write RAM6, RAM8 so that later on by DMA(direct memory access method with this information from CD ROM access instruction and graph data) be transferred to the image RAM of primary processor (for example graphics processing unit PPU of Super NES).Those skilled in the art will appreciate that and can programme the storage of walking around RAM and accessing operation and coordinate to give from the direct transfer of data of CD ROM the image RAM of PPU Mario chip 2.
Although the read access time of CD ROM is longer, the processing speed that Mario chip 2 is exceedingly fast makes CD ROM storage can be actually used in graphical application.Video and voice data adopted conventional data compression technique to compress before being stored on the CD ROM.The data companding technology is well-known to those skilled in the art.After CD ROM takes out the data of compression, the conventional data of Mario chip 2 utilizations are removed the much shorter that compression algorithm makes data expansion required time can reach than conventional graphic process unit.Mario chip 2 usefulness 21MHz clock signals are carried out work, so Mario chip 2 can be finished expansion to transfer to RAM6, RAM8 in specified time limit.
A large amount of videos and voice data (with compressed format) access in typical C D ROM storage cycle is arranged like this.Because after Mario chip 2 carried out the data expansion, the actual access time of every data byte reduced significantly, thereby influence of long access time relatively reduces to minimum to make it.When Mario chip 2 was carried out expansion, main graphic for example handled that Super NES PPU can freely carry out other Processing tasks.Certainly, for a certain special applications, if speed does not become its problem, Mario chip 2 can be with the form do not compressed from CD ROM access data.
This game card can also comprise a backup battery when using static RAM (SRAM).Backup battery 12 is connected to the reserve voltage (V that back-up battery circuit 14 provides static RAM (SRAM) with in power-fail the time through resistance R
SRAM) and static RAM chip select signal RAMCS to save data from damage.
In addition, be connected with the address ram bus at an apolegamy setting resistance 16.In usual operation, Mario chip address line outputs to RAM6 and RAM8.Yet resetting or powering up operating period, these address wires are to be connected in predetermined voltage V according to them
CcStill ground connection and as incoming line to produce height or low signal.In this manner, " 1 " or " 0 " reads into inner Mario chip register suitably.After resetting, Mario chip (during executive program) is according to the value of putting of these resistance, for example can determine the multiplier clock frequency related, RAM with the Mario chip access time, to be used for the clock frequency of other operations in the Mario chip etc.The Mario chip for example, need not any change is done in the design of Mario chip by utilizing these apolegamys setting resistance, just can be fit to use together with some dissimilar memory devices.For example, will add update signal in each corresponding moment if detect the dynamic ram value of putting.In addition, optional set can be used for surely control example such as processor multiplier circuit the speed of service and allow graphic process unit with than carrying out the instruction that the also fast speed of some multiplying order is carried out.Like this, by the multiply operation of start delay, can be with instruction (for example processor clock is 30MHz, and optional setting surely can be carried out multiplying order with 15MHz effectively) than other method available frequencies clock frequency operation faster remainder.
Fig. 2 is the block diagram that is designed to the exemplary main video game system that links to each other with the exemplary game card shown in Fig. 1.Fig. 2 can the Super NES of typical example as being sold at present by NOA.But the invention is not restricted to the application relevant or have the system of this block diagram shown in Figure 2 with Super NES.
This Super NES comprises it for example can being 16 host CPUs of 65816 compatible type microprocessors in control desk 20.CPU22 links to each other with the work RAM32 that for example can comprise memory capacity 128K byte.CPU22 links to each other with graphics processing unit (PPU) 24, and PPU links to each other with the image RAM30 that for example can comprise memory capacity 32K word again.CPU22 carries out access through PPU24 to image RAM in horizontal or vertical flyback blanking interim.Like this, CPU22 can only PPU24 image RAM is accessed in carry out line sweep during beyond time by PPU24 image RAM30 is carried out access.PPU24 shows from the image that image RAM30 is created on user's TV 36.CPU also be connected to work RAM28 on audio treatment unit link to each other.The APU26 that can comprise commercially available sound chip produce be stored in game card on the relevant sound of video game program in the ROM10.CPU22 can only carry out access to work RAM28 through APU26.PPU24 is connected with user household TV 36 through radio-frequency modulator unit 34 with APU26.
Image RAM30 among the Super NES must load the program ROM 10(that is stored in the game card, and it not only stores games, used character data when also storage is played games) in suitable character data.Any moving target, for example sub-screen information to display or background information must deposit in the image RAM30 before use.The connector that match 18 of this program ROM 10 through linking to each other with the printed circuit board edge connector shown in Fig. 1 is by the CPU22 access.The path that allows PPU data and control signal link to each other with game card to provide is provided with game card through shared host CPU data/address bus, address bus and joint 23 PPU.APU26 is connected with game card with audio-frequency bus 27 through shared host CPU bus.
The distribution of CPU22 address space is to make 0 beginning and generally be divided into each section of 32K byte from the position of program ROM 10 memory cell.Program ROM uses the closely cpu address space of half.The apical position of each cpu address space 32K byte sections generally is used for to work RAM32 and the addressing of various register.Program ROM 10 generally is 4 Mbytes.What be used in that CPU22 among the Super NES can be to program ROM 10 all carries out addressing.On the other hand, Mario chip 2 includes only one 16 program counters, thereby also comprises the memory block register in order to the 32K bytes store district among the option program ROM10.
In this one exemplary embodiment, the Mario chip has and corresponding complete 24 bit address space of Super NES memory assignment map.From Wei Zhi $00: ROM10 is contained in the positions of 8000 beginnings, and the RAM chip 6,8 on the game card is then from Wei Zhi $70: 0000.
Since ROM10 on the game card and RAM6, RAM8 are connected on the bus separately, they just can be by the parallel access of Mario chip.And to RAM6, ROM is fast for the comparison of the frequency of access of RAM8, and the Mario chip is designed to utilize this feature performance benefit.The Mario chip can't carry out access to any memory among the Super NES, promptly can't be to work RAM32 or PPU image RAM30 access.
For making Mario chip deal with data or painting in the bit map, data must leave in the RAM chip 6,8 of this Mario chip.Like this, must be in the RAM of Mario chip chip 6,8 at any variable shared between NES CPU program and mario chip program.Any data of storing in advance that the Mario chip need be used can be in ROM10, and any variable is then in RAM6, RAM8.
Only be that the needed any private variable of Super NES need not to be placed among game card RAM6, the RAM8.In fact, RAM6,8 memory space are of great value, so preferably the content that override is needed is distributed to RAM6, RAM8.Any nonessential variable should be stored in the internal RAM 32 of Super NES.
The bit map that the Mario chip writes is among Mario game card RAM6, the RAM8, and when each framing bit reflection is all provided, under the control of Super NES, is transferred to by DMA among the image RAM30 of PPU.
The CPU22 of Super NES carries out access to all internal RAM in the Super NES control desk, and resembling does not have the Mario chip.The Mario chip can't carry out access to this RAM, so must introduce all data of passing between MarioROM/RAM chip and inner Super NES RAM by CPU itself.Just can transmit data by the CPU22 programming, or send the mobile data piece by DMA.For all games, Mario card ROM10 and RAM6, RAM8 are mirrored in habitual mode.
Which CPU CPU22 controls can be carried out access to game card ROM and RAM chip temporarily.Under the situation that powers up or reset, the Mario chip is turned off, and by CPU22 game card ROM and RAM chip is carried out access fully.For making Mario chip working procedure, be necessary to make the CPU22 program to abandon to ROM or RAM chip, preferably to both access, and wait for that the Mario chip finishes the task that it is given, perhaps CPU22 can advance a certain program copy inner work RAM32 and carry out it at there.
The Mario chip have some can be from Super NES CPU side programming and the register of reading.These are all mirrored from Wei Zhi $00: the CPU22 memory assignment map of 3000 beginnings.
As shown in Figure 2, Super NES produces and receives all control signals.When Super NES CPU22 need carry out access to program ROM 10, it produced a control signal ROM SEL.Begin memory updating, this Super NES produces a update signal RFSH.When Mario finished a certain operation, it sent an interrupt signal to the interrupt request line that links with Super NES CPU.CPU22 also produces in addition and reads and write signal.
System timing signal is that the chain circuit 21 of the timing from control desk 20 produces.Power up/reset signal also is to produce and deliver to game card in master console 20.
Super NES also comprises authentication processing device 25, and it is according to U.S. Pat P4 above-mentioned, and 799,635 with the authentication processing device on the game card 3 swap data on incoming line I, output line O and reset line R.U.S. Pat P4,799,635 point out, this treatment facility 25 makes CPU22 be in reset mode and is proved up to authentication.
The Super NES electronic game machine of representing with the square frame form in Fig. 2 is in this just generally description.The relevant further details that comprises the Super NES of PPU24, can be 07/651 for example at the application Ser. No of application on April 10th, 1991, find in 265 the U.S. Patent application that is entitled as " video process apparatus ", merger is in this application by reference and significantly for this application.Further again details how information between Super NES and game card transmits can be 07/749 at the application Ser. No of application on August 26th, 1991,530 the U.S. Patent application that is entitled as " the direct memory access device in the image processing system and its employed External memory equipment " and the application Ser. No of application on November 19th, 1991 are 07/793, find in 735 the U.S. Patent application that is entitled as " mosaic image display unit and used external memory unit ", these the application this quote and merger in this application.
The present application people recognizes in some applications, need utilize information that this primary processor dma circuit transmits during vertical blanking than actual capabilities transmit many.Even thereby can cause picture dimension slightly to shrink, or wish to prolong the vertical blanking time.By adopting this method, just embodying significant advantage aspect processing speed and the frame updating frequency.
Fig. 3 illustrates the perspective view of the exemplary mechanical appearance design of the recreation cartridge of holding other structure on Mario chip shown in Figure 1 and the game card.Fig. 3 illustrates the perspective view of exemplary outside support of the video game control desk 20 of the Super NES video game hardware that holds shown in Fig. 2 similarly.This class video game control desk 20 is 07/748 with the application Ser. No that relevant demountable game card 19 is shown in application on August 23rd, 1991,938 are entitled as among the Fig. 2-9 of U.S. Patent application of " TV game machine ", this application this quote and merger in this application.
Fig. 4 A and 4B are the block diagrams that is shown in the Mario chip 2 among Fig. 1.At first concentrate and see that the various buses that are shown among Fig. 4 A and the 4B, instruction bus INSTR are instruction code to be delivered to 8 buses of various Mario chip components.X, Y and Z-bus are 16 bit data bus.The HA bus is 24 a main system address bus, and in preferred embodiment at present, the address bus with Super NES during use links to each other.8 the main system data bus that links to each other with the data/address bus of Super NES when the HD bus is to use.The PC bus is 16 buses of giving various system elements with the output of Mario chip program counter (being the register R15 in the general register piece 76).The ROMA bus is 20 ROM address buss.ROM D bus is 8 ROM data/address buss.The RAM bus is 16 address ram buses.RAMD IN bus is 8 RAM sense data buses, and RAMD OUT bus is 8 and writes data/address bus.
The shared game card RAM6 of Mario chip and Super NES, RAM8 play the main function of Data transmission between Mario chip and Super NES.Super NES carries out access to the Mario chip for address bus HA and data/address bus HD.The register 76 of Mario chip carries out access by Super NES through the address bus HA of Super NES.
Super NES is program ROM 10 and RAM6, RAM8 access on 2 pairs of game cards of Mario chip.ROM controller 104 and RAM controller 88 receive the signal of the relevant storage access that is produced by Super NES, just play the storage access of ROM and RAM respectively.Explain in passing, RAM selects signal RAMCS to be used for confirming that by the Mario chip Super NES is about to this RAM addressing.
X, the Y and the Z-bus that are shown among Fig. 4 A and the 4B are inner Mario chip data buses.X and Y bus are that source data bus Z data/address bus then is the purpose bus.These buses carry 16 parallel-by-bit data.
When execution command, Mario chip 2 source data of instruction usefulness can be placed on X and/or above the Y bus result data be placed on the Z-bus.For example, when carrying out content phase adduction with two registers the result is placed on the instruction of the 3rd register, ALU (ALU) 50 is through X and the Y bus interface is received the content of two source registers and the result delivered to Z-bus (then deliver in the piece 76 appointment register).Decipher the control signal that draws by 60 pairs of instruction operation codes of instruction decoding circuit of Mario chip 2 and be sent to ALU50 starting addition (ADD) operation.
As being explained at Fig. 1 explanation, the ROM bus that is connected with the Mario chip, RAM bus and Super NES host bus can carry out signal and communication concurrently.Mario chip 2 monitors control, address and the data-signal operation to determine that main system is being carried out through main frame Super NES bus transfer.Can carry out access to game card ROM bus and game card RAM bus concurrently according to the Super NES operation that any given moment is carrying out.In common Super NES game card, the address wire of host CPU directly links to each other with RAM with ROM with data wire, and RAM and ROM just can not be by accesses concurrently like this.
According to an aspect of the present invention, Mario chip 2 makes ROM bus shown in Fig. 1 and RAM bus separate physically with Super NES bus.Mario chip 2 monitors the signal that transmits on Super NES bus, and determines that what signal needs through not being that two the ROM buses of separating and the RAM bus of timesharing delivered to rom chip and RAM chip.By separating ROM bus RAM bus, the Mario chip can be read and write to RAM from ROM simultaneously.In this manner, the Mario chip can with its cheap access time than the RAM access time slowly the rom chip of Duoing work effectively and after need not ROM access by the time and finishing just to the RAM access.
Get back to Fig. 4 A, the Mario chip is full programmed processor and comprises ALU50 as indicate the front.Mark and draw operation by marking and drawing hardware 52 execution except multiply operation by multiplier 64 execution and some pixel, ALU50 carries out all arithmetic functions that are equipped with in the Mario chip.One receives the suitable control signal that comes from command decoder 60, and ALU50 just carries out addition, subtraction, XOR, displacement and other operations.Shown in Fig. 4 A, ALU50 receives the signal that will operate from X, Y bus, the operation that the control signal that execution is received from command decoder 60 is started, and the result that will operate delivers to Z-bus.Below in conjunction with accompanying drawing 6 ALU is described in further detail.
Like this, graphic operation is carried out according to programmer's specified pixel, marks and draws hardware circuit 52 is transformed into each pixel designated value correct formatization when scanning character data.This character data mirrors among the Super NES image RAM30 that is shown among Fig. 2 subsequently for the satisfactory place that shows usefulness.In this manner, Mario chip program person only needs to regard the image RAM30 of Super NES as bit map, and in fact it is a character image.
This marks and draws all relevant instructions of marking and drawing of hardware 52 responses, permission is carried out programmable selection and marks and draws corresponding pixel X and Y coordinates are transformed into and the corresponding address of character definition with the form that is used for driving Super NES image RAM30 to the X and Y coordinates and the predetermined colour of a specific pixel on display screen.
Mark and draw hardware 52 and have relevant data latches, allow buffering pixel data as much as possible before writing game card RAM, so that the RAM data transactions reduces as far as possible.Marking and drawing in the hardware 52 after the conversion and buffering in the X and Y coordinates data, the character definition data are sent to game card RAM subsequently.
This is marked and drawed hardware 52 and receives X, Y coordinate data through PLOT X register 56 and PLOT y register 58 respectively.In present preferred embodiment, PLOT X and PLOT y register are not register (shown in Fig. 4 A) separately but Mario chip general register (promptly being shown in register R1 and R2 in the block of registers 76 among Fig. 4 B).
This is marked and drawed hardware 52 and also receives pixel color information through color register 54.As following will further specifying, the colour of each shown pixel is stored in 8 * 8 register matrixes, and the color specification of each pixel occupies row of this matrix.
Mark and draw hardware 52 processing character addresses and deliver to character RAM6, RAM8 with the data relevant with the color input and with them with X, Y.RAM controller 88 and address ram bus RAM A are delivered to through output line 53 in the character address.Character data is delivered to character RAM through output line 55, multiplexer 93 and RAM data/address bus RAM D DUT.This plotting hardware 52 allows the pixel in the character to address individually when keeping compatibility with Super NES character format, to offer programmer one " virtual " bit map display system by this." virtual " bit map is kept among the game card RAM and shows that at every frame utilizing application Ser. No for example above-mentioned when finishing is the image RAM30 that dma circuit in 07/749,530 the U.S. Patent application is sent to Super NES.This marks and draws the single pixel of hardware 52 energy High-speed Control, and some the 3-D type graphical effect that relates to rotation and convergent-divergent target is achieved.
Owing to will be transformed into character format to pixel format, mark and draw hardware 52 also through RAMD IN and data latches 82 and incoming line 83 receive from card RAM6, RAM8 with current pixel X, Y near the relevant information of other pixels.By use retrieve from RAM6, RAM8 and temporarily be stored in the RAM data latches before pixel data, can make the indegree of writing of RAM is reduced to minimum.The RAM data latches 80,84 and 86 that is shown among Fig. 4 A also is used for cushioning the color data of receiving about a certain pixel (they have been stored in the interior multiple bit plane of game card RAM), marks and draws hardware 52 so that these data are offered.
RAM data latches 80 and the content that Super NES data/address bus links to each other thereby Super NES can read this data latches.RAM data latches 80,82 and 86 is by 88 controls of RAM controller.The data that RAM data latches 84 and 86 is used for receiving from RAM6, RAM8 also will be delivered to destination bus Z so that the predetermined register in the loaded into register piece 76 from the data of RAM6, RAM8.The latch 90 that links to each other with RAM controller 88 is buffer RAM addresses in addition.RAM controller 88 utilization be stored in address in the latch 90 through RAM A bus to RAM6, RAM8 addressing.RAM controller 88 can also carry out access through address bus HA by Super NES.
Plotting hardware 52 also responds reads pixel (READ PIXEL) instruction, it reads the colour information of the pixel on the defined upright position of content of the defined horizontal level of content of register R1 and register R2, and in destination bus Z and output line 87 are stored in the result predetermined register in the block of registers 76.To be described further PLOT hardware 52 in conjunction with Fig. 7,8A and 8B and explanation.
Streamline buffer register 62 links to each other with ALU control command decoder 60 and instruction bus INSTR and starts and place the order of instruction bus to operate accordingly to produce control signal (being applied to whole M ario chip).Mario chip 2 is the pipeline microprocessors that just read the next instruction that will carry out when it carries out present instruction.The next instruction that pipeline register 62 storages will be carried out makes and if possible just carry out each instruction in one-period.Placing instruction on the instruction bus is content addressed by the program counter that is stored in register (for example can be the register R15 that is shown in the block of registers 76 of Fig. 4 B).
The instruction of carrying out by Mario chip 2 can be from be shown in Fig. 1 program ROM 10 or the inside cache buffer memory device RAM94 of Mario chip obtain, or obtain from game card RAM6, RAM8.If just from the ROM10 executive program, ROM controller 104(is shown among Fig. 4 B) place Mario chip instruction bus INSTR with reading command and with it.If program command is to be stored among the cache RAM94, then the instruction meeting directly places on the instruction bus from cache output through cache ram output bus 95.
To the programming of host CPU (being Super NES), be to make program ROM 10 parts distribute to the instruction of Mario chip program.Super NES program command Mario chip is carried out the function of a regulation, then the address among the ROM10 of access Mario chip program code is offered the Mario chip.Pipeline register 62 reads next byte instruction of the instruction of just carrying out, offers command decoder 60 with the information with relevant instruction, makes decoder understand imminent incident in the middle of program is carried out in advance and expects about handling.Decoding in the parts 60 and control circuit produce order ALU50, mark and draw the control signal of hardware 52, cache control device 68 etc., to finish by the indicated operation of the instruction code of just carrying out.
The Mario chip also comprises high speed, the parallel multiplier 64 opened with the ALU50 branch.The instruction manipulation of multiplier 64 response regulation multiplies each other two 8 figure places of receiving from X and Y source end bus interface and 16 results is loaded onto destination bus Z.If possible this multiply operation is finished in one-period.Being input to two numbers of multiplier 64 can tape symbol or tape symbol not.Multiplier can also be finished the long word multiply operation, two 16 figure places are multiplied each other and produces one 32 result.Multiplier comprises that also the partial product register 66 that is associated stores the partial product that produces during the multiply operation.When translating a multiply operation code, just the control signal by command decoder 60 outputs starts multiplier 64.Multiplier 64 will be carried out the long word multiplying order of the multiplication that relates to 16 words in minimum 4 clock cycle.
The long word multiplying order has following form:
R
4(low word), the DREG(high-word)=Sreg*R6
Carry out this instruction just make source register multiply by register R6 content and with 32 results be stored in register R4/DREG(low/high position).Multiplication is signed and 32 results is set the zero-sum symbol.
This operation is carried out according to following six steps:
Step 1: not signed multiplication R4[0 ... 15]=SREG[0 ... 7] * R6[0 ... 7]
Step 2:X has symbol.R4[0…15]=R4[0…15]+256*SREG[8…15]*R6[0…7]。No matter the most-significant byte of product, but the carry of reservation addition.
Step 3:X has symbol.R5[0 ... 15]=CY+(R6[8 ... 15] * SREG[0 ... 7]) ÷ 256; Add symbol.
Step 4:X is tape symbol not, and Y has symbol.
R4[0…15]=R4[0…15]+256*SREG[0…7]*R6[8…15]。No matter the most-significant byte of product, but the carry of reservation addition.
Step 5:Y has symbol, R5[0 ... 15]=R5[0 ... 15]+CY+SREG[0 ... 7]+R6[8 ... 15]) ÷ 256; Add symbol.
Step 6:X, Y have symbol, R5[0 ... 15]=R5[0 ... 15]+RY[8 ... 15] * R6[8 ... 15].
Be used in multiplier 64 in this one exemplary embodiment and for example can be the sort of that McGraw-Xi Er published in 1984 by described in " the digital computer arithmetic " of slips promise work.
Referring to Fig. 4 B, cache controller 68(can further detailed icon in Figure 14) allow the programmer to start loading operation effectively, that part of program that will want to carry out the at a high speed cache RAM94 that packs into.This " cache (CACHE) " is applied to the frequent small program loops that takes place in graphics process usually.Mario chip instruction set comprises " CACHE " instruction.And then any instruction of this CACHE instruction is loaded into cache RAM, till cache RAM is fully loaded.When carrying out the CACHE instruction, the current program counter state is loaded into cache base register 70.Like this, the content provided of this cache base register the original position that begins of cache.
The great majority instruction is carried out in one-period.From slow relatively external memory storage resemble ROM10 and or RAM6,8 instruction must before carrying out them, just take out.This will spend about 6 cycles in addition.For improving program execution speed, should utilize " cache " RAM itself in the Mario chip.
Cache RAM can be the instruction cache buffer memory device of one 512 bytes.It is smaller that this capacity is compared with the size of average program, thereby the programmer must make decision to how utilizing cache RAM to the maximum limit.Any program cycle of 512 byte cache capacities of can packing into all can be moved at full speed, makes to read and carry out all and carries out in one-period.Because bus is separated, so can be when the code of carrying out from the cache 94 of inside simultaneously to ROM and RAM access.
Cache RAM92 can pass through when its carries out rotation and convergent-divergent calculating, utilize PLOT instruction (will illustrate below) when pixel is write RAM6, RAM8 at it, move simultaneously and understand the circulation of reading each pixel color in the cache, make the sprite rotation easily from ROM10.All these take place concurrently, provide very fast throughput although the slowest operation has reduced speed.The slowest operation is reading of ROM data normally, and Here it is, and why the Mario chip be designed to utilizes reason to ROM and the access of RAM buffering.
Compare from the program of relative slow ROM with operation, operation can about soon 6 times from the program speed of cache RAM94, but it at first must be loaded into the cache from ROM.This is to assign to carry out by the initial part that instruction is placed any circulation of the cache of wanting.From the CACHE instruction address, with preceding 512 byte of cache circulation.Carrying out circulation for the first time during the code of iteration, program is just come out and is duplicated into cache RAM with 60 block of bytes forms from ROM10.These all further iteration that circulate all will be from cache RAM rather than ROM10.
The CACHE instruction can optionally be used in the program cycle front of any repetition.Just the successive iterations of circulation can have benefited from its program and puts in cache.If program cycle is greater than 512 bytes and overflow cache 94, it will correctly be worked, and only preceding 512 bytes are moved and remaining will moving from ROM10 as usual from cache 94.This part ground has improved speed but is not ideal enough.
The memory location of having loaded among the 72 couples of cache RAM94 of cache flag bit register as the part of cache controller in preferred embodiment identifies.This cache flag bit allows the Mario chip to judge promptly whether a certain program command can be carried out from cache RAM execution faster rather than from program ROM 10.Can carry out access through Super NES address bus HA through 96 couples of cache RAM of multiplexer 94 by cache controller 68 or Super NES.
Accessible degree of parallelism is similar to reading from ROM10, and the Mario chip also provides the approach that is written in parallel to RAM6, RAM8.When no matter as long as the Mario register is written to RAM6, RAM8, it for example just starts the independent RAM write circuit in RAM controller 88 and carries out store transaction.This generally will spend 6 cycles, if but the programmer avoids carrying out in doing so the affairs of another RAM, just can not make this processor delay.For example inserting other processing between two store instructions just can carry out rapidlyer.The RAM write circuit is just carried out its work if having time like that.Write if use two continuously, write fashionable second meeting and make processor delay carrying out first so.
For example (instruction in the instruction set that will illustrate below using):
FROM R8; R8 is deposited in (R13)
SM (R13)
SM (R14); R0 is deposited in (R14)
TO R1
FROM R2
ADD R3; Carry out: r1=r2+r3
TO R4
FROM R5
ADD R6; Carry out: r4=r5+r6
Notice that these two store instructions are too approaching mutually.Because just being busy with attempting to finish first store instruction thereby second, the RAM bus will spend more 6 cycles.
The preferable approach that the speed of service can write code faster is by spaced apart these two store instructions of other useful codes.For example:
FROM R8; R8 is deposited in (R13)
SM (R13)
TO R1
FROM R2
ADD R3; Carry out: r1=r2+r3
TO R4
FROM R5
ADD R6; Carry out: r4=r5+r6
SM (R14); R0 is deposited in (R14)
In this manner, but cause several instructions of executed in parallel when RAM writes, after several cycles, carry out second storage operation again in first store instruction.
The instruction set that the following describes comprises the quick instruction of a address ram that register write back is used to the end.This carries out some processing by from RAM taking-up value to it, subsequently it is deposited back fast, so allow " in batch " data processing.
Referring to Fig. 4 B, direct data latches 74 and instruction buses link to each other.This data latches allows instruction itself that data source is provided, so just need be by instruction assigned source end register.The output of this immediate data latch 74 links to each other with destination bus Z.It then link to each other with the register of a regulation of block of registers 76.Instruction decoding circuit 60 is to the decoding of " directly " data command and begin to carry out corresponding operation to register transfer.
The GET B(that is shown among Fig. 4 B gets byte) register 98 uses with foregoing delay/buffering read operation.In this respect, the processor of prior art is owing to utilize slow relatively ROM of access time widely, as long as carry out ROM, just has to generally wait for that it finishes data read.And utilize the delay/buffering that the following describes to read mechanism, when finishing data read, also can carry out other operations.According to this mechanism, no matter with what method to register R14 access or modification in the block of registers 76, address enable the reading that is just automatically identified to ROM or RAM in the R14 content.
Shown in Fig. 4 B, register R14 links to each other with ROM controller 104.Whenever, revise the content of register R14 by any way, ROM controller 104 just starting to the access of ROM.The multiplexer of result through linking to each other with ROM data/address bus ROMD to the ROM access is loaded in the GET B-register 98.The instruction of listing below allows the information of buffering in GET B-register 98 is carried out access.This information is loaded onto certain register that destination bus Z enters into block of registers 76 subsequently through multiplexer 100.
In this manner, to spend a certain number of processing cycle as if known from the ROM reading of data, just can start that read operation and after having started this data read, the Mario chip is not to wait not carry out other operation, but for example can carry out the code that has nothing to do with data read.GET B-register 98 can also be used to storing the information of searching out from RAM6, RAM8 through the multiplexer shown in Fig. 4 B 102.
16 16 bit registers (R0-R15) in block of registers 76, are equipped with.Register R0-R13 is general register (although wherein some register is often used for following illustrated special-purpose purpose).As mentioned above, register R14 is used as the pointer of readout memory, and when being modified, just starting is from ROM(or RAM) readout interval.The byte of reading is stored in interim buffer (GET B-register 98) so that get low byte by GET L(later on) or GET H(get high byte) order access.Register R15 is a program counter.It points to the next instruction that is about to access when each instruction begins to carry out.
Register R0 is a general register, generally as accumulator.It still is default source end and destination register for the instruction in most of single cycles.For example, the content of R0 and R4 is added together just need only specify register R4 significantly if want to make.
When carrying out recursion instruction with regard to special register R11, R12 and R13.The address of the instruction that register R13 storage circulation top will be carried out, and the number of times that register R12 storage circulation will be carried out.If the content non-zero of register R12 then will install to program counter (R15) and execution in the instruction of the specified address of R13 content.The address that will return after register R11 storage circulation is finished.
Register controlled logic 78 links to each other with block of registers 76 and controls access to general register R0-R15.According to the form of the specific instruction that to be ready carrying out, instruction decoding logic 60 will be specified one or more register R0-R15.Which register is register controlled logic 78 specify is that next the bar instruction that will carry out needs to utilize.Register controlled logic 78 is delivered to X and Y bus with relevant register output.In addition, shown in Fig. 4 B, under the control of register controlled logic 78, relevant register R0-R15 receives information from Z-bus.
In a single day ROM controller 104 is received from Super NES address bus HA or from the address of Mario chip and just access is carried out in that address.ROM controller 104 will illustrate in greater detail in Figure 13.Can install to cache RAM 94 so that execute instruction apace from the information of ROM10 access.ROM controller 104 and RAM controller 108 all have the bus arbiter unit of arbitrating between Super NES's and the Mario chip access requires.
As the back can further specify, the Mario chip also utilizes status register (for example in block of registers 76 or in RAM6, RAM8), these registers can be by Super NES CPU access, can store the sign that is used for the identification-state condition, for example 0 sign, carry flag, sign symbol sign, overflow indicator, " operation (GO) " sign (1 expression Mario chip is moving and 0 expression Mario chip is out of service); The ROM byte reads and indicates (expression register R14 is by access); The variety of way Warning Mark comprises the sign that ALT1 sign, ALT2 sign, direct low byte and direct high byte sign and indication source register and destination register had been set by the order of " WITH " prefix, and interrupt identification.
The Mario chip of representing with the block diagram form among Fig. 4 A and Fig. 4 B is called by Super NES, the Mario chip is repeatedly turned on and off each second execute the task.Originally when Super NES opens, be stored in that games are directed among the ROM10.Attention is before carrying out games by Super NES processor and Mario chip processor, and game card is at first certified.Explain in passing, according to U.S. Pat P4,799,635 methods of pointing out can place reset mode with Super NES CPU earlier, and the authentication procedure of the certified processor that execution is associated with game card and Super NES master console is carried out this class authentication.
The Mario chip is in off state at the beginning.At this constantly, Super NES can be without restriction to game card program ROM and game card RAM access.When Super NES need utilize the disposal ability of Mario chip to carry out graphic operation or mathematical operation, Super NES is at game card RAM(or at the Mario register of regulation) in storage it need the corresponding data of Mario chip processing, and with pack into the program counter of Mario chip of the address of the Mario program that will carry out.The data that will be handled by the Mario chip can be X, the Y coordinate datas of the regulation of the target that must rotate and amplify or dwindle.The execution of Mario chip energy can be implemented algorithm and control sprite or the background of moving target and the program of prospect with different numbers.Utilize the enhancing hardware and software of the raising speed of Mario chip, can make these operations obtain high speed performance.
Use the Mario chip and handle the ability that sprite can be expanded whole video game system considerably.For example, the every frame of Super NES is only limit and is shown 128 sprites.Along with in fact utilization Super Mario chip can show hundreds of sprites, and for example make their rotations.
Finished the function of being asked when the Mario chip, just carried out STOP instruction by Super NES, produce an interrupt signal and be transferred to Super NES with show the Mario chip finished its operation-this then shown that it has been ready to carry out next task.
The Mario chip can be used for carrying out such as the little task of this class of high-speed multiplication operations or can be used for the picture that picture one width of cloth is full of sprite.In any situation, as long as Super NES does not go to take these buses when RAM or ROM bus are just used by the Mario chip, Super NES can freely handle with the Mario chip concurrently.Give the control of Mario chip to RAM on the game card and ROM bus even note Super NES, Super NES still can carry out the program that its work RAM32 from be shown in Fig. 2 comes out.Like this, copy to its work RAM by the Super NES program that will will carry out from program ROM, and meanwhile by Mario chip executive program, the throughput of whole system just can be improved.
Be shown in flow chart among Fig. 5 illustrate for starting Mario chip from ROM read in desired address and run time version by the operating sequence of performed " move Mario(RUN the MARIO) " program of host CPU (for example Super NES CPU).Routine by Fig. 5 representative generally is to be carried out by Super NES CPU after this program is copied to the work RAM32 that is shown in Fig. 2 from program ROM 10.When wanting the Mario chip to operate, just carry out this routine by host CPU.
Shown in square frame 125, when carrying out host CPU routine RUN MARIO, at first finish the initialization operation that comprises reservation Super NES register.During initialization step, this routine copies to the work RAM32 of host CPU from program ROM 10.
Shown in square frame 127, the ROM10 code storage district that is storing the Mario program code that will carry out is put into a certain register of Mario chip.Shown in square frame 129, the actual address in the code storage district is stored in the panel base register of Mario chip in addition.
After this, shown in square frame 131, by indicate with 4 kinds of uses, 16 kinds still 256 kinds of color modes set I/O I/O mode.These modes are corresponding to color mode that host CPU moved.But also set the mode that limits the panel height by the number of character display in addition.
Also set in addition and will give the mode position of Mario chip the control of ROM and RAM bus.Control to ROM and RAM bus can separately be selected, thereby the Mario chip can be set at it to the ROM bus, to the RAM bus or the mode of both being carried out access.If ROM and RAM are all set " Mario takies (Marioowner) " mode, then host CPU just can not from ROM or RAM reads or write to ROM or RAM.Notice that the Mario chip has a kind of function from dummy address to Super NES that return if host CPU is attempted when the positive service routine ROM bus of Mario chip the program ROM access.To the transfer of this address Super NES is occupied up to the Mario chip always no longer needs game card ROM bus is carried out access.
Shown in square frame 133, the Mario chip brings into operation after the program counter of Mario chip is loaded onto the address of storing article one instruction that the Mario program must carry out.
Host CPU is waited for then from the next interrupt signal (square frame 135) of Mario chip.When receiving an interrupt signal, Super NES is apprised of the Mario chip and has finished its operation and stopped (square frame 137).If do not receive this class interrupt signal, then host CPU continues to wait for interruption (square frame 135).During this, Super NES can by execution come from its work RAM32 that is shown among Fig. 2 program and with the operation of Mario chip executive program code concurrently mutually.
Whether Super NES test status register (for example in Mario chip register piece 76) subsequently sets (137) with " GO " sign of the Mario chip determining to show that the Mario chip is moving.In addition, the interrupt identification in the status register of Mario chip is set to show that the Mario chip is the source of the interrupt signal received of host CPU.Like this, after host CPU receives interrupt signal (135), corresponding M ario status register is detected to determine whether the Mario chip is interrupt source (with respect to for example being to show vertical blanking interrupt signal at interval).If Mario chip (137) out of service is then removed the Mario occupancy mode position for RAM and ROM, by Super NES ROM and RAM are carried out access fully.Super NES withdraws from and returns its performed program point before entering RUN Mario program from this routine (141).
Enter ROM Mario occupancy mode when the CPU22 games make the Mario chip, it must stop the access to ROM on one's own initiative.Whenever needing only CPU22 needs the ROM access because of some reason, and it just closes ROM Mario occupancy mode simply.When the Mario chip needed the ROM access again, the Mario chip can automatically be waited for there, returns it again up to ROM Mario occupancy mode.If its operation just can not need to do like this from the program of inner cache RAM fully.
If the Mario chip is in the Mario occupancy mode for ROM, it is important that the CPU22 games are not attempted to read anything from ROM.When certain interruption takes place be, for example because of vertical blanking, it causes that maskable interrupts (NMI), and CPU22 just automatically attempts to read from ROM its interrupt vector.This is undesirable, and it can avoid ROM because CPU informs the Mario chip clearly, and interrupts afterwards, and it still will read from ROM.In this situation, although promptly be in the Mario occupancy mode, CPU22 still will situation to the ROM access under, will make the Mario chip suppose that this is the interrupt vector request.
Under ROM Mario occupancy mode, read during the interrupt vector, the Mario chip will be repositioned onto interrupt vector the bottom in stack district among the internal work RAM32 of Super NES.For example, if common interrupt vector Shi $00: it shifts ffec with regard to JUMP() to Wei Zhi $00: 010c.The interrupt vector of all Lai Zi $00: ffeX all makes CPU22 JUMP to they corresponding Wei Zhi $00: 010X similarly.This technology is avoided its access ROM10 when CPU22 should not be to the ROM10 access, but it is transferred among the airborne RAM32 of Super NES.Attention must contain the transfer or the branch transition of oriented interrupt handling routine based on the interrupt vector of RAM.Promptly should there be actual code the there and be not only vector address.When the Mario chip is not in Mario and takies the mode of ROM, then still use usual ROM interrupt vector, thereby preferably continue to point to identical address in these positions, with run to based on the identical place of the interrupt vector of RAM.
Instruction set
Mario chip instruction set provides effective means for the programming to high speed graphic and other Processing Algorithm.Below some instruction is done employed some register of different instruction to be made an explanation after the simple and clear explanation.Comprise that also the instruction in the instruction set carries out detailed enumerating.
Instruction is 8 bit instructions, generally carries out in a clock cycle.But these instructions can be changed by 8 prefix instructions.Mario chip instruction set comprises the register pressure-gradient control valve system of a uniqueness, allows the programmer to specify destination register and two source end registers before any instruction.The pressure-gradient control valve usefulness that does not have these " prefixes ", instruction will only move on accumulator.This instruction set is the instruction set with variable word length of countless combinations like this.The elementary instruction of some byte longs are arranged, in one-period, moving here.By adding the prefix instruction, the programmer just can expand the effect of these instructions.The command visible programmer need be 8,16 or 24.
Mario processor utilization instruction starts carries out program at a high speed, airborne cache RAM and to the I/O of memory latency/buffering.Utilize monocyclic pixel to mark and draw order, start the operation of adopting above-mentioned pixel to mark and draw hardware, just can carry out graphics process effectively.
Before listing the Mario instruction set, illustrate below earlier by processor and set when the execution command or the register of the various memory maps of access.At first list the Status Flag register.Status register is 16 bit registers, indicate below with this register in 16 every relevant sign.
16 in Status Flag register
Bit flag
0-standby
1 z zero flag
2 c carry flags
3 s symbols
4 v overflow indicators ([position 14 is to position 15 carries] XOR
[position 15 is to the carry digit carry])
5 g running marks: 1Mario chip operation
0 stops
6 r (R14) ROM byte reads carries out
7-standby
" GO " sign (position 5) is set at one state and just shows that the Mario chip moves, and " 0 " state that is set at just shows Mario chip (consequently produce an interrupt signal and deliver to Super NES) out of service.This flag bit is checked by Super NES processor.Position 6 is to set to show current the reading of ROM byte of carrying out.Be listed in and just carried out after following getting (GET) byte instruction will wait this sign zero clearing to show to finish data read.These least significant bits of status register can be independently or are read by Mario chip processor or host CPU with 8 of remainder.The highest significant position of Status Flag register is set the variety of way that defined instruction is explained by the prefix instruction of regulation.
The position mode
8 alt1 change (ADD → ADC, SUB → SBC etc..)
9 alt2 change (ADD → ADD#, SUB → SUB# etc..)
10 il are byte low level (carrying out before ih) immediately
11 ih are a byte high position (the buffering low byte is ready up to upper byte) immediately
12 b set SReg and DReg, are set by WITH
13-standby
14-standby
15 irq interrupt identifications
When aforesaid ALT1 mode, ADD(addition) instruction can be interpreted as ADD WITH CARRY(full add method) instruction, and SUB TRACT(subtraction) instruction can be interpreted as SUBTRACT WITH CARRY(and bring a subtraction into) instruction.Instruction ALT1 starts this mode.
The ALT2 instruction will change to the addition of ADD WITH IMMEDIATE DATA(with immediate data to the explanation of ADD instruction), SUBTRACT is then changed to SUBTRACT IMMEDIATE DATA(deduct immediate data)." immediately " and then data are instructed and are provided with byte.Notice that instruction ALT3 can be set at the logical one level to position 8 and position 9.Position 10 and position 11 are upper bytes or low byte is set immediately immediately according to this immediate data.Position 12 definition " b " modes of status register are here by utilizing prefix instruction " WITH " to set source end register and destination register.The position 15 of status register stores the Mario interrupt signal of having set after the Mario chip is out of service.
Except above-mentioned status register, the Mario chip also comprises many registers.As mentioned above, the Mario chip comprises 16 registers as 16 bit wides described in the explanation of the block of registers 76 of Fig. 4 A and 4B.These register great majority are by also can be used as the storage of data and address with register.But indicate as top, register R15 sometimes but always is used as program counter in institute.In general register plays two aspect effects, is used for host CPU communication and control executive program.The Mario chip also adopts other registers in addition, and its function provides in following table.
The register special function
D Reg that r0 is default and S Reg
The X coordinate of r1 PLOT instruction usefulness
The Y coordinate of r2 PLOT instruction usefulness
R3 does not have
The low word of r4 LMULT instruction results
R5 does not have
The multiplier word of r6 FRMULT and LMULT instruction usefulness
R7 MERGE(merging) source 1 of instruction usefulness
R8 MERGE(merging) source 2 of instruction usefulness
R9 does not have
R10 does not have
R11 is used for the connection register of subroutine call
R12 is used for LOOP(circulation) counting of instruction
The address of r13 LOOP instruction branch transition
R14 ROM address just begins to read byte from ROM once changing
The r15 program counter
Other registers
8 PCBANK program code memory block registers
Register 64K memory block, 8 ROMBANK routine data ROM memory blocks
Register 64K memory block, 8 RAMBANK routine data RAM memory blocks
16 SCB panel plots
8 NBP number of bit-planes
8 SCS panel row size Selection:
256、320、512、640、1024、1280
( panel 16 and 20 character height are 2,4 and 8
In the individual bit plane)
The Mario chip also comprises a color mode CMODE register.In this register, have 4 in exemplary embodiments in order to produce special-effect described below.By setting the effect that the CMODE register is set up, as illustrated in the following example, be to be 16 or 256 colour resolution modes and different according to what set.
Everybody is as follows for the CMODE register:
Mark and draw colored 0 (nontransparent position)
When 16 color modes:
If position 0=1 and selected colored nibble=0 do not mark and draw
When 256 color modes and position 3=0:
If item does not does not mark and draw position 0=1 and color byte=0
When 256 color modes and position 3=1:
If position 0=1 and colored low nibble=0 do not mark and draw
Attention: the transparency is ON=0 effectively
The invalid OFF=1 of the transparency
Unique purposes of transparency OFF is that a zone is filled out with 0
(be used for cls)
Rock the position
When 16 color modes, rock (high/low nibble provides two kinds of colours)
If low nibble is selected in (xpos XOR ypos AND 1)=0
If high nibble is selected in (xpos XOR ypos AND 1)=1
If the effective and selected colored nibble of the transparency is 0 and does not does not mark and draw
When 256 look modes, rock and not have effect
The colored position of high nibble
At 16 color modes or when 256 color modes and CMODE position 3 are set
When one's own department or unit is set, the COLOUR order is set at the low nibble of color register the high nibble of source word joint
(being used for extracting) as the sprite of 16 colours of the high nibble storage of another sprite
If the low nibble of color register is 0 and does not does not mark and draw when the transparency is effective.
Complicated position
Only be used for 256 color modes.When this position was set, colored high nibble was just locked, and the COLOUR order only changes low nibble.
Only calculate the transparency from low nibble.
At 256 color modes of standard, if the transparency effectively, it calculates from all
; 16 color mode examples
ibt r0,$C0
Colour; Put Cai Se $C0
Ibt r0, %0000; Put 0
cmode
ibt r0,$97
colour
Plot; Mark and draw Cai Se $7
ibt r0,$30
colour
Plot; Do not mark and draw, because colored
Wei $0
; (the effective and low half-word of the transparency
Joint=0)
Ibt r0, %0001; Set 1
cmode
ibt r0,$40
colour
Plot; Mark and draw Cai Se $0
; (transparency is invalid)
; The example of 16 color modes and set 2
ibt r0,$C0
Colour; Put Cai Se $C0
; The example of 256 color modes and set 3
ibt r0,$C0
Colour; Put Cai Se $C0
Ibt r0, %1000; Set 3
cmode
ibt r0,$47
colour
Plot; Mark and draw Cai Se $C7
ibt r0,$50
colour
Plot; Do not mark and draw, because of colour is
$C0
; (the effective and low half-word of the transparency
Joint=0)
Ibt r0, %1001; Set 3 and position 1
cmode
ibt r0,$60
colour
Plot; Mark and draw Cai Se $C0
; (transparency is invalid)
stop
; The example of 256 color modes and set 3 and position 2
ibt r0,$C0
Colour; Put Cai Se $C0
Ibt r0, %1100; Set 3 and position 2
cmode
ibt r0,$74
colour
Plot; Mark and draw Cai Se $C7
ibt r0,$03
colour
Plot; Do not mark and draw, because of colour is
$C0
; (the effective and low half-word of the transparency
Joint=0)
Ibt r0, %1101; Set 3, position 2 and position 1
cmode
ibt r0,$08
colour
Plot; Mark and draw Cai Se $C0
; (transparency is invalid)
stop
Many Mario chip registers are relevant with specific function.As above indicated in the table, if do not specify in addition, system just defaults to register R0 required destination register of a certain special instruction or source end register.Register R0 also can be used for the accumulator of ALU.Multiplying order is returned one 32 result as mentioned above.Minimum effective 16 are stored among the register R4.Multiplying order (FRMULT) and slab multiplying order (LMULT) that register R6 then is combined with the symbol mixed decimal are used together.
Register R7 and R8 are used to carry out merge command.This instruction is taken the register (being register R7, R8) of two regulations and they is combined to form the coordinate data of sprite.This coordinate data is to be used for the ROM table addressing so that the sprite of regulation is videoed at the polygon of regulation.This instruction defines the address of the colour that is included in the next pixel in the sprite that will video on polygon by making up two portions of registers, thereby helps to carry out effectively the operation of quality reflection.
Register R11 and R13 are used for control subprogram and carry out.Register R11 adds 1 as the connection register of subroutine call and the content of stored program counter.The address of palpus access after the content-defined loop ends of register 11.Register R12 is used for the counting of the cycle-index that store predetermined will carry out.The address of circulation then is stored among the register R13.
As mentioned above, as long as the content of register R14 is modified, just read a byte from ROM institute's address stored in register R14.In this manner, can realize the READ operation of delay or buffering in conjunction with GET byte instruction cited below.
Get back to " other registers (Other Registors) " in the table, program is to adopt 24 bit address to address from its program ROM position that begins to carry out.Minimum effective 16 of this address obtains in program counter.The highest significant position of determining program storage area then is stored in program code memory block (PC Bank) register.
ROM memory block register (ROM BANK) storage highest significant position is obtained the routine data that is stored among the ROM 10 to allow the Mario chip processor, and these highest significant positions are by on 16 ROM addresses of additional storage in register R14.Similarly, RAM memory block register (RAMBANK) storage high-order address bit is to allow the routine data among the Mario chip processor access RAM.For expanding the addressing range of Mario processor effectively, the content of the memory block register of RAM and ROM ROM and the RAM access instruction with the Mario chip can be used.
Panel base register (SCB) is used to just store the address of the virtual bit reflection of the sprite that is established, rotates, amplifies or dwindle or target.When carrying out the PLOT pixel instruction, among the panel base register SCB storage RAM by access and the address that is written into.
Register NBP is used to store the number of bit-planes of using.It generally shows and utilizes 2,4 or 8 bit planes.In addition, panel is listed as the definite information about virtual bit map of the number of characters that is comprised in size register SCS is used to according to every row.
The memonic symbol of the Mario chip instruction set declarative instruction of listing below and when corresponding instruction is deciphered performed function corresponding.At first below to not being the concise and to the point commentary of some function proposition of self-explantory relevant instruction.
The STOP instruction is carried out when the Mario chip has been finished its operation, and is masked as zero in order to put " GO ", also produces interrupt signal simultaneously and gives host CPU.
That part of program ROM that CACHE instruction will copy among the Mario chip cache RAM in order to definition and carry out from this RAM.When carrying out the CACHE instruction, the content of program counter is installed into the cache base register and the following cache-tag that will illustrate is resetted.
The Mario chip comprises the branch transition instruction of a series of delays, wherein follows instruction such execution as shown in the table of this transfer.The address that transfer is gone is with respect to the content of program counter.Instruction set comprises the many kinds of delays transfers based on listed condition in the following table.
The Mario chip comprises many " prefix " instruction, promptly extremely/by/from (to/with/from).These prefix instructions relate to the data contact of subsequent instructions.For example " T0 " prefix is that next instruction is set destination register (DReg)." FROM " prefix is that next instruction is set source end register." WITH " prefix then both is set.
Second source register is specified in many instructions in command code.They are just defaulted to R0 if do not have prefix instruction setting SReg and DReg.After each instruction that is not the prefix instruction, SReg and DReg all are set at R0.If Dreg is set to the R15(program counter), thereby when making next instruction in R15, store its content, will start delay the transfer of one-period.
Other prefix instruction is set sign to change the operation of subsequent instructions in the high byte of status register.All no prefix instructions all make the high byte zero clearing of status word.Be the example how relevant subsequent instructions can be modified by the prefix instruction below.
Lsr; R0=r0 moves right 1
to r4
Lsr; R4=r0 moves right 1
from r4
Lsr; R0=r4 moves right 1
alt1
from r6
to r5
Add r7; The r5=r6+r7+ carry
alt1
with r3
Add r3; R3=r3+r3+ carry (6502rol)
If " b " sign on the amount in status register, " TO " instruction just are revised as the instruction of operation " MOVE " (assignment), the TO instruction determines that information transmits the register FROM instruction of going and then determines information source.
STW instruction is storage one special word in buffer, so just need not wait until always and finish the instruction of just carrying out the back after the storage operation.In this manner, adopt the RAM slower that processor speed is slowed down than processor.
The execution of LOOP instruction will make general register R12 content successively decrease 1.If the content non-zero of R12 then begins determined address transfer in R13.
Alt1, Alt2 and Alt3 are provided with sign above-mentioned in the status register is explained performed instruction in the different mode shown in the according to the form below prefix instruction.
The X of the pixel that the PLOT command identification will be marked and drawed and Y screen coordinates, and with X and the corresponding panel of Y coordinate (represented in as register R1 and R2) position on mark and draw by COLOR and instruct determined colour.The PLOT pixel instruction comprises makes increasing progressively automatically of R1 content, exempts an extra increment instruction to help to mark and draw horizontal line at a high speed.
If Alt1 sign is set and then marks and draws instruction and be interpreted as READ PIXEL(and read pixel) instruction (RPIX).Read pixel instruction by execution, specifying the locational pixel color of panel to be read out, it also can be used to undesired Pixel Information is washed out from marking and drawing hardware.
Read pixel instruction RPIX and come down to use conversely plotting hardware, read to determine the color of a certain specific pixel specified instruction from the matrix of character.COLOR instruction provides the colour of the next pixel that can be determined by the content of the source end register of appointment to colored hardware.
" CMODE " instruction setting color mode also can be used for producing the different special-effects of showing as the example that provides above.For example, utilize the CMODE instruction can make pixel alternately, form deep or light variation, rock effect thereby produce with the colored alternate of difference.Thereby this CMODE instruction can also be used for controlling demonstration that the transparency makes sprite and can touch off background and show.Determine the transparency by setting as above the sign of the relevant color mode of example.
Instruction set also is included in and is used for determining the gradient of target to display or the decimal signed multiplication of slope in the calculating of rotating polygon.
Increment instruction will be started reading from ROM as if using with register R14.GETC instruction meeting is taken out the byte of institute's access and the color register of will packing into from ROM.
The following table explanation is according to the instruction set (those instructions of having discussed above comprising) of the exemplary Mario chip of present preferred embodiment.
Instruction set
Hexadecimal code memonic symbol function
$00 STOP makes the out of service and generation of Mario chip
65816?IRQ?g=0
1 cycle of $01 NOP inoperation
$02 CACHE is changed to PC with the cache plot and makes
The cache sign resets (as long as PC is not
Equal current cache plot) if superelevation
Speed buffer memory plot<〉r15 cache base then
Location=r15 resets the cache sign
$03 LSR logic shift right
DReg=SReg?LSR1
$04 ROL brings a ring shift left into
DReg=SReg?ROL1
$05 nn BRA sbyte always does to postpone to shift
R15=r15+ tape symbol byte offset
$06 nn BGE sbyte is if shift more than or equal to then postponing
If (s XOR is a r15=r15+ band v)=1
The symbol-byte skew
$07 nn BLT sbyte is if shift less than then postponing
If (s XOR is a r15=r15+ band v)=0
The symbol-byte skew
$08 nn BEQ sbyte shifts if equal then to postpone
If z=1 is r15=r15+ tape symbol byte then
Skew
$09 nn BNE sbyte then postpones to shift if be not equal to
If z=0 is r15=r15+ tape symbol byte then
Skew
If $0a nn BPL sbyte canonical postpones to shift
If s=0 is r15=r15+ tape symbol byte then
Skew
If negative then delay of $0b nn BMI sbyte shifts
If s=1 is r15=r15+ tape symbol byte then
Skew
$0c nn BCC sbyte is if the carry zero clearing then postpones to shift
If c=0 is r15=r15+ tape symbol byte then
Skew
$0d nn BCS sbyte is if carry set then postpones to shift
If c=1 is r15=r15+ tape symbol byte then
Skew
$0e nn BCC sbyte then postpones to shift if overflow zero clearing
If v=0 is r15=r15+ tape symbol byte then
Skew
$0f nn BVC sbyte then postpones to shift if overflow set
If v=1 is r15=r15+ tape symbol byte then
Skew
$10-$1f TO r0 ... it is rn (next command code that r15 (prefix) establishes DReg
The destination register)
DReg=rn
If b:MOVE rn=SReg (no marks set)
$20-$2f WITH r0 ... (prefix) establishes DReg and SReg is rn
R15 (source and destination and b sign)
DReg=rn
SReg=rn
b=1
The address place storage SReg of $30-$3b STW (rn) in rn
RAM[rn]=SReg (word is low/and high by slow
Dash)
(the word normal storage on the even address)
If the address place storage SReg of alt1:STB (rn) in rn is low
Byte
RAM[rn]=SReg.1 (byte is cushioned)
$3c:LOOP make r12 successively decrease 1 if r12<0 item postpone to change
Move on to the address among the r13
r12=r12-1
If r12<0, r15=r13 then
(TO/WITH/FROM is inoperative)
$3d ALT1 (prefix) sign alt1 set
alt1=1
$3e ALT2 (prefix) sign alt2 set
alt2=1
$3f ALT3 (prefix) sign alt1 ﹠amp; Alt2 set
alt1=1
alt2=1
$40-$4b LDW (rn) takes out the address from rn and installs to DReg
DReg=RAM[rn] (word low/high wait for)
(word on the even address is normally packed into)
If alt1:LDB (rn) takes out (no symbol word in the address from rn
Joint) installs to DReg
DReg.h=0
DReg.l=RAM[rn] (byte wait)
$4c PLOT is at r1, and r2 (X, Y) locates to mark and draw pixel and makes r1
Increase progressively (whether N.B. does not check r1 and r2
On panel, but can be on any ground of RAM
Draw the side)
Mark and draw (r1, r2)
r1=r1+ 1
If alt1:RPIX reads out in the colour that r1, r2 (x, y) locate pixel
The DReg=point (r1, r2)
$4d SWAP swap byte
DReg.h=SReg.l
DReg.l=SReg.h
$4e COLOUR sets the PLOT colour
Mark and draw colour=SReg
If alt1:CMODE sets the PLOT color mode
Mark and draw color mode=SReg
$4f NOT DReg=is to SReg negate (NOT
SReg)
$50-$5f ADD?r0…r15 DReg=SReg+rn
If alt1:ADC DReg=SReg+rn+c
If alt2:ADD DReg=SReg+#n
If alt1+alt2:ADC DReg=SReg+#n+c
$60-$6f SUB?r0…r15 DReg=SReg-rn
If alt1:SBC DReg=Reg-rn-c
If alt2:SUB DReg=SReg-#n
If alt1+alt2:CMP SReg|rn (z, s, c, v)
$70 MERGE merges to DReg with the high byte of r7 and r8
In
DReg.h=r7.h
DReg.l=r8.h
Set sign as a result on the basis at this:
s=b15?OR?b7
v=b14?OR?b6?OR?s
c=b?13?OR?b5?OR?v
z=b?12?OR?b4?OR?c
$71-$7f AND?r1…r15 DReg=SReg?AND?rn
If alt1:BIC DReg=SReg AND NOT rn
If alt2:AND DReg=SReg AND #n
If alt1+alt2:BIC DReg=SReg AND NOT # n
$80-$8f MULT r0 ... DReg=SReg*Rn (signed 8 * 8
The r15 position)
If alt1:UMULT DReg=SReg*Rn (not signed 8
* 8)
If alt2:MULT DReg=SReg*#n (signed 8 * 8
The position)
If alt1+alt2:UMULT DReg=SReg*#n (not signed 8
* 8)
$90 SBK deposits SReg to the RAM of last time use
The address
$91-$94 LINK1 ... 4 are connected to r11 with the return address
r11=r15+1…4
$95 SEX symbol expands to word from low byte
DReg.[b15-b7]=SReg.[b7]
DReg.l=SReg.l
$96 ASR arithmetic shift right
DReg=SReg?ASR1
If alt1:DIV2 is divided by 2 (band rounds off)
DReg=SReg?ASR1
If DReg=-1 is DReg=0 then
$97 ROR brings a ring shift right into
DReg=SReg?ROR?1
$98-$9d JMP r8 ... r13 transfers to the address among the rn
R15=rn (postponing to shift)
The long address of transferring among the rn of if alt1:LJMP
(ROM Bank is from SReg)
And cache is resetted
R15=rn (postponing to shift)
Program ROM memory block register=SReg
$9e LOB low byte
DReg.h=0
DReg.l=SReg.l
$9f FMULT decimal signed multiplication
DReg=(SReg*r6) .hw is (signed
16 * 16 multiplication)
c=(SReg*r6).b15
If alt1:LMULT slab signed multiplication
DReg=(SReg*r6) .hw is (signed
16 * 16 multiplication)
r4=(SReg*r6).lw
c=(SReg*r6).b15
$a0-$af nn IBT r0 ... r15, sbyte installs to the byte of sign extended
Among the rn
Rn=byte (symbol expansion immediately
Exhibition)
If alt1:LMS r0 ... r15, byte is from absolute skew byte address
Taking-up installs among the rn
rn=RAM[byte<<1]
(digital data)
If alt2:SMS r0 ... r15, byte with rn store into absolute partially
Move byte address
RAM-[byte<<
1]=rn (digital data)
$b0-$bf FROM r0 ... r15 (prefix) establishes SReg=rn
SReg=rn
If b:MOVES DReg=rn
(z, s ﹠amp; (symbol hangs down word to v
Joint) sign)
$c0 HIB high byte
DReg.h=0
DReg.l=SReg.h
$cl-$cf OR?r1…r15 DReg=SReg?OR?Rn
If alt1:XOR DReg=SReg XOR Rn
If alt2:OR DReg=SReg OR #n
If alt1+alt2:XOR DReg=SReg
XOR?#n
$do-$de INC r0 ... r14 increases progressively rn
rn=rn+ 1
(TO/WITH/FROM
Inoperative)
$df GETC takes out word from the ROM buffer
Joint is marked and drawed colour
If alt2:RAMB RAM data storage area is deposited
Device=SReg
If alt1+alt12:ROMB ROM data storage area is deposited
Device=SReg
$e0 ... $ee DEC r0 ... r14 successively decreases rn
rn=rn-1
(TO/WITH/FROM
Inoperative)
$ef GETB takes out not from the ROM buffer
Signed byte is delivered to
DReg
The DReg=ROM buffer
Byte. zero expansion
If alt1:GETBH takes out from the ROM buffer and send
High byte to DReg
The DReg=ROM buffer
Byte.Merge with low byte
DReg=(SReg?&
$FF)+(byte<<8) (adopt
Use WITH)
If alt2:GETBL takes out from the ROM buffer and send
Low byte to DReg
The DReg=ROM buffer
Byte.(adopt with the high byte merging
Use WITH)
If alt1+alt2:GETBS from the ROM buffer, takes out
The tape symbol byte is delivered to DReg
The DReg=ROM buffer
Byte.Sign extended
$f0-$ffnnnn LWT r0 ... r15, word word immediately installs to rn among the rn
=word (through buffering) immediately
If alt1:LM r0 ... r15, word takes out dress from absolute word address
In rn
The rn=RAM[word address] (word
Data)
If alt2:SM r0 ... r15, word deposits absolute word ground with rn
The location
Fig. 6 to Figure 17 illustrates among Fig. 4 A and Fig. 4 B in more detail with each part shown in the block diagram.For more clearly representing original feature of the present invention, those are conventional or obvious to those skilled in the art, and can make these original features can not be by the clear circuit details of seeing not shown in below the figure.
The exemplary ALU that can be used as ALU unit 50 is shown in Fig. 6.Link to each other with Z-bus with X, Y with ALU50 shown in Figure 6 as Fig. 4 A.Therefore, the general register R0-R15 of Mario chip links to each other with ALU.
ALU50 carries out addition and subtraction function through 16 adder/subtracter 152, and ALU50 also comprises conventional " AND " logical circuit 154, " OR " logical circuit 156 and EXCLUSIVE OR(XOR) " logical circuit 158.
ALU also comprises conventional shift function circuit, wherein any carry digit be displaced to highest significant position position result then warp 160 deliver to multiplexer 164.In addition, ALU50 carries out conventional byte swap operation, can make the least significant byte and the most significant byte exchange that are stated from the bus, and result then along the line 162 delivers to multiplexer 164.X and Y bus as shown in Figure 6 with circuit 152,154,156 link to each other with 158.
Adder/subtracter 152, circuit 154,156, output links to each other with 16,6 multiplexers 164 that enter 1 " going out " with function of exchange for 158 output separately, displacement output.According to the instruction that translates, to destination bus Z output corresponding results.
Adder/subtracter 152 is except receiving 16 from the X bus, also is received in the information that bus Y sends here or the information of instruction itself according to the command decoder input of delivering to multiplexer 150.
ALU50 comprises that also circuit 166 takes place the CPU sign.CPU status signal circuit 166 produces zero, overflows, and symbol and carry signal are so that install at least one flag register in the circuit 166.CPU indicates can be by instruction decoding circuit 60 set, the carry starting that this circuit is produced instruction, zero starting, and symbol starts and overflows initiating signal to be deciphered, and makes flag set according to adder/subtracter 152 determined corresponding conditionses.Also can make these flag set according to the content of destination (or result) the bus Z that imports status signal circuit 166.Sign for example can be used to trigger the operation of conditional transfer based on wider condition and range.
The pixel that Fig. 7,8A and 8B illustrate among Fig. 4 A is is in more detail marked and drawed circuit (52,54,56 and 58).This circuit is carried out the PLOT order, and it takes out a certain specific X coordinate and Y coordinate, and sentences the determined colored pixel of marking and drawing of content of the color register 54 that is loaded by the COLOR order at those screen coordinateses.
Super NES adopts the display panel of character image as top indicating.Mark and draw hardware in order to the pixel coordinate address date is transformed to the address date of character image.
The character of Super NES is defined in the bit plane.Character can have 2,4 or 8 bit planes to determine 4,16 or 256 kind of colour.Each byte of character definition comprises the bit plane of a pixel column of this character.These pixels from left to right are determined from a high position to the low level.For the operation of 256 color modes, there is the 8RAM position to need to upgrade.
Pixel is marked and drawed circuit and is had a locally buffered mechanism, and it comprises colour matrix 206, this matrix can store a certain specified byte that will show all everybody because these may finally all need to upgrade.Bit plane counter 208 links to each other with colour matrix unit 206.Pixel coordinate is loaded into pixel X and pixel y register 202,204 from X and Y bus.In this exemplary embodiments, general register R1 and R2 are as the plotting X register shown in Fig. 7 202 and mark and draw y register.These registers receive the X and the Building Y mark of the pixel that will mark and draw by the PLOT command specifies.
Mark and draw X and mark and draw y register 202,204 and link to each other with character address counting circuit based on full adder and half adder, this circuit outputs to 2 position drum-type shift circuits 214 by the address, and then links to each other with address comparator 218 with plotting address register 216.Three least significant bits marking and drawing the X register link to each other with demultiplexer 212 and then link to each other with the unsettled register 210 in position.
Be shown in plotting controller 200 among Fig. 8 A and receive signal and following other control signals that show PLOT pixel (PLOT) or READ pixel (RPIX) command decoder.Mark and draw controller 200 and produce the plotting circuit control signal that uses in the following manner.
As mentioned above, mark and draw control circuit 200 and be created in the control signal that pixel is marked and drawed use in the hardware 52.Shown in Fig. 8 A, pixel control circuit 200 receives the output of the unsettled register 210 from the position, and this output links to each other with pixel control circuit 200 through AND door 201.If all 8 of the unsettled register 210 in position all are set, just notify pixel control logic 200 can skip readout interval and the information of colour matrix 206 can be write RAM.
Mark and draw control circuit 200 produce the content that makes colour matrix 206 the dump control signal DUMP(of its second buffer stage buffering in conjunction with Fig. 7 and Fig. 8 B together with reference to).Controller 200 produces in addition and makes the unsettled register reset signal CLRPND in position and load the unsettled register controlled signal LDPND in position and these signals are delivered to the unsettled register 210 in position.In addition, controller 200 produces and relevant LDPIX and the BPR control signal in colour matrix unit that illustrates in conjunction with Fig. 8 B.
Suppose that pixel marks and draws hardware and do not taken in addition, command decoder to the decoding of PLOT order and be input to mark and draw controller 200 the PLOT signal just starting produce and load unsettled (register) signal LDPND.The LDPND signal is sent to the unsettled register 210 in position and makes data be able to install to the unsettled register 210 in position from demultiplexer 212.Unsettled clearly (register) signal CLRPND response shows that unsettled data have write RAM that RAM goes and finished signal RAMDONE and produce.After this unsettled register in position is idle uses for next pixel plotting information.
Shown in Fig. 8 C is that explanation is by marking and drawing the signal that controller 200 receives, various addresses and data-signal, the sequential chart of the relation between control signal that other are relevant and the plotting above-mentioned output control signal that controller produced.Exemplary address value, data value etc. are only used for illustrating and illustrate.
Marking and drawing hardware 52 works as following.Determine that when marking and drawing controller 200 plotting hardware 52 is unoccupied, the content that is shown in the color register 54 among Fig. 4 A is put into the horizontal line of 8 * 8 colour matrix units 206.Colour matrix 206 carries by luggage and reads by row.The content of color register 54 is upgraded by the COLOR order.Any follow-up PLOT order will be put into colour matrix with color data by color register 54 these registers.
Loading onto everybody upright position of color register in the colour matrix is to determine by being stored in 3 least significant bits marking and drawing in the X register 202.These three least significant bits marking and drawing the address have just determined the delegation position that will upgrade in the colour matrix 206 like this.
The unsettled register 210 in position is which certain bits that is used for writing down the merogenesis of panel character just is updated.Register 210 comprises and shows that everybody has been written to 16 register flag of the relevant portion of panel.This unsettled register 210 is that response is loaded by marking and drawing the signal LDPND that controller 200 produced and is removed by signal CLRPND.
To carry out follow-up plotting order if be updated in the panel reflection of same area, together repeat with the additional color data that is encased in 8 * 8 colour matrix 206 corresponding to pixel once the operation of giving the location.Another one then utilizes the least significant bit that is stored in the plotting address in the plotting X register 202 to be arranged in the unsettled register 210 in position.Certain bits is that 3 road to No. 8 demultiplexers through linking to each other with plotting X register 202 load in the unsettled register 210 that puts in place.If the pixel level position that will upgrade is beyond 8 pixels, or it is when being in different upright positions, and the data that then write matrix 206 must read into RAM6(or RAM8) after this colour matrix 206 just can freely receive new color data.Receive require to write the follow-up plotting order of RAM before, the current content of colour matrix 206 is marked and drawed in the hardware in pixel always and for example is cushioned in colour matrix 206.
Just be shown in gate among Fig. 7 by use when the data from colour matrix 206 are written to RAM6 or RAM8, half adder carries out address mapping with full adder and calculates so that X, Y coordinate transform are become address ram.Actual address computation is carried out according to note given below and exemplary code.These calculating meetings are that 4,16 or 256 color modes are different along with what adopt.Given exemplary calculating is at 256 color modes.
These 256 color characters have 4 groups of 16 bytes, determine that separately bit plane is to having 64 bytes.
Bit map is to be placed on each position in required panel district by the character with uniqueness to set up.When carrying out the plotting relevant, preferably organize character with row with Super NES.
For example (128 panels that pixel is high)
The word symbol
0 16 32 … …
1 17 33 …
2 18 24 …
· · ·
· · ·
15 31 47 …
Super NES is not limited to 256 characters, so the bit map capacity mainly is subjected to the constraint of memory and DMA delivery time.For example the Mario chip can be marked and drawed on the high panel of 128 and 160 pixels.Maximum screen width is 32 characters or 256 pixels.
Following algorithm is to illustrate the virtual bit reflection control pixel plotting of how adopting by the row tissue.
Earlier to three the least significant bit calculating pixel masks of all bit planes from the X coordinate.
The pixel number mask
0 %10000000
1 %01000000
· · ·
7 %00000001
Next utilize the Building Y mark of having removed low 3 to calculate,, be multiplied by character boundary then to provide along the number of characters of row along the descending side-play amount of row.
The panel colour is the character boundary of unit with the byte
4 16
16 32
256 64
Next remove of the skew of low 3 calculating characters from the Building X mark, multiply by the row size to the top.The row size is that the number of characters of row multiply by character boundary.
General row size
The color character height
16 20
4 256 bytes, 320 bytes
16 512 bytes, 640 bytes
256 1024 bytes, 1280 bytes
Low 3 of the Y coordinate provide along the downward byte offset of character.All skews and present bit reflection pointer sum provide the address of the byte that contains pixel first bit plane.Bit plane subsequently alternately moves last 1 byte and moves last 15 bytes from last plane.Then, pixel is every with regard to set of available pixel mask or zero clearing.The position of each bit plane is set or zero clearing is the required state that is stored in corresponding positions in the colored number in the color register 54 of this pixel.
The demonstration sign indicating number
; On 4 bit planes, mark and draw the game demonstration that is used for us with 65816 codes
; Program is tabledriven basically
; Register A, X and Y are 16
Put colour
; Get colour and double
lda Colour
asl a
tax
; The colored mask of bit plane 0 and 1 is set
lda mask1?tab,x
sta mask1
; The colored mask of bit plane 2 and 3 is set
lda mask2?tab,x
sta mask?2
rts
Mark and draw
; The gentle vertical coordinate of fetching water
; Both are doubled and deliver to Y and the Z register
lda plot?xl
asl a
Tay; Y is X coordinate * 2
lda plot?yl
asl a
Tax; X is Y coordinate * 2
; Get along the downward skew of row
lda pyoftab,x
; Add the line skew initial value
clc
adc pxoftab,y
; Add the buffer indication (selection bit map) of twice
clc
adc drawmap
tax
; X contains the skew of the word of needed pixel from the bit map plot
; Y is the X coordinate * 2 of pixel
; Do bit plane 0 and 1
Lda.l bitmapbase, x; Get and contain pixel words
And pbittabn, y; Cover the old pixel colour
sta pmask
Lda maskl; Colour and pixel mask are covered together
and pbittab,y
Ora pmask; Add other pixels
Sta.l bitmapbase, x; Deposit bit map
; Do bit plane 2 and 3
lda.l bitmapbase+16,x
and pbittabn,y
sta pmask
lda mask2
and pbittab,y
ora pmask
sta.l bitmapbase+16,x
rts
; 256 word tables that the pixel bitmask is right
pbittab
rept32 ;num_col
dw $8080,$4040,$2020,$1010,$0808,$0404$0202,$0101
endr
; Going up that word is reverse shown
pbittabn
rept32 ;num_col
dw $7f7f,-$4040,-$2020,-$1010,-$808,-$404,-$202,-$101
endr
; Bitplanes 0 and 1 colored mask (colored 0 to 15)
mask1 tab
dw $0000,$00ff,$ff00,$ffff,$0000,$00ff,$ff00,$ffff
dw $0000,$00ff,$ff00,$ffff,$0000,$00ff,$ff00,$ffff
; Bitplanes 2 and 3 colored mask (colored 0 to 15)
mask2 tab
dw $0000,$0000,$0000,$0000,$00ff,$00ff,$00ff,$00ff
dw $ff00,$ff00,$ff00,$ff00,$ffff,$ffff,$ffff,$ffff
col_size equ.Number_char_rows*8*Number_bit_planes
(16) (4)
; Skew to the character lists original position
pxoftab
temp=0
Rept32; The character columns
dw temp,temp,temp,temp,temp,temp,temp,temp
temp=temp+col_size
endr
; Offset downward along tabulation
pyoftab
temp=0
dw temp
dw temp+6
dw temp+10
dw temp+12
dw temp+14
temp=temp+32
endr
More carefully referring to Fig. 7, determine that it can be in fact R1 and R2 register in the block of registers 76 that X and Y coordinates on the panel of the location of pixels that will mark and draw are loaded onto PLOT X and y register 202 and these registers of 204().3 least significant bits that are encased in the plotting address of PLOT X register 202 determine that by the X and Y coordinates of appointment in the bit plane byte who will be written into.The content of accumulator R0 is loaded into the row by the selected colour matrix 206 of the least significant bit of marking and drawing X register 202.
If marking and drawing X register 202 is 0, then defines among everybody of 8 of this pixel and will upgrade least significant bit.Along with marking and drawing X register 202 is that 0,3 road to No. 8 demultiplexers will make that least significant bit is changed to logical one in the unsettled register in position.
Since the corresponding positions of the unsettled register 210 in position shows that the unsettled register 210 in position that need not to make an amendment is used for showing by the RAM controller and need not the interval write out from RAM.
The unsettled register 210 in position is used as the pixel mask buffer to prevent writing new data from the RAM covering.For finishing this function, as shown in Figure 7, the content of the unsettled register 210 in position is delivered to colour matrix unit 206 as input.
If BIT_PENDING register 210 is 0, the panel address of calculating pixel then, and it is installed to mark and draw address register 216, the location of pixels in this byte is used for making the identical bits set in the BIT_PENDING register 210.If BIT_PENDING register 210 is non-zeros, then make the BUSY flag set.
If the address that newly calculates equals the content of PLOT_ADDR register 216, the set and the BUSY sign is resetted in BIT_PENDING register 210 of then new position, pixel position.
If new address is different from the content of PLOT_ADDR register, then take following steps.
If BIT_PENDING register 210 comprises FFh and then directly carry out step 3.
Reading byte from the PLOT_ADDR+ panel plot of RAM delivers among the interim data buffer PLOT_BUFF.
If in the data buffer that shielded of BIT_PEND register 210 everybody all equals the 0th row of PLOT_COLOR register matrix, then directly carry out step 5.
The 0th row of PLOT_COLOR register matrix is written to all positions of the PLOT_BUFF that enables by the BIT_PENDING register.The data buffer content is write back to the PLOT_ADDR place of RAM.
Step 5
Carry out the 1st row of same operation (PLOT_ADDR+1) and execution PLOT_COLOR register matrix.
Step 6
If 8 or 256 color modes are gone up the 2nd row of carrying out identical operations and carrying out PLOT_COLOR register matrix at (PLOT_ADDR+16).
Continuation is upgraded up to institute chromatic colour position
The content of marking and drawing X and plotting y register is that full adder and half adder circuit represented among Fig. 7 handled.In the block diagram of Fig. 7, the configuration of full adder FA and half adder HA is simplified with relevant logical circuit.The calculating of address can followingly be finished:
Address=panel plot+2*y[0.2]+(y[3..7]+x[3..7] * 16+(x[3..7] * 4) ﹠amp; ﹠amp; Scr_ht)
* character boundary
Middle entry is
y7 y6 y5 y4 y3
x7 x6 x5 x4 x3 0 0
x7 x6 x5 x4 x3 0 0 0 0
Thereby for example produce one 10 intermediate object program px[0..9] with 6 full adders and 1 half adder.
For making the intermediate object program displacement become the correct precision that selected color mode is used, this result delivers to 12 * 3 multiplexers of being controlled by the character boundary value.This with y than low level y[0..2] combine and form 16 panel addresses.Finish this address computation, this places the borderline panel base value of 1K scr[9..22 with permission with panel again] addition.
This address is delivered to subsequently according to selected 4,16 or 256 colour resolutions and is used for 1 or 2 or 4 two-position drum-type shift unit 214 is multiply by in the address information input of being delivered to.
The output of shift circuit 214 is sent to the plotting address register 216 of the buffer storage effect of playing address ram.Because after carrying out the plotting order, register R1 and R2 promptly mark and draw X and can change with the content of marking and drawing y register, thereby this address need be cushioned.
218 pairs of conducts of address comparator compare by marking and drawing hardware new address of determining and the old address that is stored in plotting address register 216 from the output of shift circuit 214.If the address difference then must be write RAM in this address.If the plotting address that is stored in address register 216 is identical with the output of shift circuit 214, address comparator 218 just produces (delivering to plotting controller 200) control signal PLEQ.
Get back to colour matrix 206, illustrated above that colour matrix 206 read by row.Bit plane counter 208 links to each other with colour matrix 206 to determine reading which row.Bit plane counter 208 links to each other with RAM controller 88, and when finishing the RAM operation, RAM controller 88 produces the signal that the bit plane counter is increased progressively.
When data when RAM reads into and fill out data break, control signal BPR just provides zero input and LDRAM signal will be in nought state to door 222.Under this class situation, will send latch 228 to through gate circuit 226 from the data input of RAMD input.Data in the latch 228 can be read as shown in Figure 7 subsequently and be delivered to the RAM data/address bus through the RAM controller.Other these class unit combination together will be by X, and the represented pixel data of Y pixel logo converts to the compatible mutually character data of Super NES character format.
The relevant access game card RAM(s of RAM controller 88 generations that in Fig. 9, is shown specifically) various control signals.Game card RAM(s) must be at the plotting hardware of Super NES, Mario chip, and fetch data shared between the process from performed Mario chip program.The effect of RAM controller 88 is to guarantee constantly to give the address ram bus with corresponding address corresponding.The generation of the RAM access signal in the corresponding moment is partly to be controlled by the arbitrated logic 310 that is shown in further detail among Figure 10.
Signal generation at suitable moment access RAM is partly to be controlled by arbitrated logic 310.As shown in figure 10, arbitrated logic 310 receives the signal CACHE(cache of relevant storage access input) request CACHERQ, request of data DATRQ and plotting request PLTRQ.Each is stored in latch 325,327 respectively provisionally these input signals, in 329.If the Mario that will carry out instruction coming from RAM or ROM, then come start up process by receiving CACHE request signal CAC HERQ, this signal is to be used for confirming that the instruction just carried out is not from cache RAM thereby must be from RAM or ROM with regard to Figure 10.Like this CACHE request signal CACHERQ show can not be from the CACHE(cache) 94 take out instruction and carry out.Data request signal DATARQ is as to need resultant to the instruction of RAM access (for example adorning byte, dress word instruction) decoding.In addition, arbitrated logic 310 receive response mark and draw order decoding and by marking and drawing the plotting request signal PLTRQ that controller 200 produces.
When the Mario chip moving with Mario take the position when being set arbitrated logic 310 just start (as status register SUSPEND(time-out) mode position and be in as indicated in " 0 " state).Receiving and storing the CACHE request, behind request of data and the plotting request signal, latch 325,327 and 329 produces CRQ respectively, DRQ and PRQ signal.Door 331,333 and 335 receives these signals that the in-phase output end of latch separately comes and sets up priority for these signals.In this respect, the CACHE request signal has the highest priority, and data have the request of marking and drawing of second high priority and then have minimum priority.It is to attempt to carry out the instruction from CACHE because it shows that the CACHE request signal is given limit priority, but must be from the RAM access instruction.If higher priority request has made its latch set separately, then gate circuit 333 and 335 can't make latch 339 and 341 set in order to the request of guaranteeing lower priority.Have only system to be in halted state, latch 337,339,341 could set, because SUSPEND(suspends) the mode signal is imported into each door in the door 331,333 and 335.When the Mario chip take can be freely during access RAM SUSPEND mode signal can be in the low logic level state.If SUSPEND is changed to 1 latch 337,339 and 341 and can not be set, when confirming that in the latch 337,339 and 341 any can not be set for " 1 " (being that one-period is carrying out) time.Door 331,333 and 335 is set up the priority of RAM.If the request of CACHE REQUEST(cache) latch 337 is set then that data validation latch 339 just can not be set, and confirms that latch 341 can not be set yet if CACHE or DATA request latch are set then to mark and draw.
Latch 337 is once producing cache confirmation signal CACK by the set of cache request signal, and it one establishes CACHE94(or RAM by the logical circuit among Figure 10) just available.If the logical circuit among Figure 10 determines that RAM is not taken by alternate manner, will similarly produce data acknowledge signal DACK and mark and draw request confirmation signal PACK, to confirm request of data and to mark and draw request.
Gate circuit 343 is delivered in latch 337,339 and the output of 341 homophase, and then through NOR door 344 Gray counter 345 of the timing signal that produces the RAM access is resetted.Those skilled in the art will appreciate that Gray counter is the counter that at every turn only has a carry-out bit to change, and this can be conveniently used for controlling the RAM access time.
The DONE(that is produced by timing generator 312 finishes) signal receives by NOR door 344 and latch 337,339,341.RAM cycle of DONE signal indicating finishes.The generation of DONE signal triggers the zero clearing of the respective latch in the arbitrated logic 310, makes the request cancellation of having latched.The DONE signal is also delivered to start circuit for example cache controller 68 or plotting controller 52, finishes to show the RAM access.
According to another embodiment of the present invention, the Mario chip can adopt the doubleclocking system.The Mario chip processor need not to be driven by the identical clock that for example drives RAM controller circuitry above-mentioned like this.For example RAM controller 88 can be driven by the 21MHz clock signal that Super NES comes and the Mario chip processor can be driven by another variable ratio frequency changer clock.The Mario chip processor can not limit and work in the 21MHz clock frequency under this mode.
Mario chip according to this one exemplary embodiment can adopt asynchronous attitude machine control circuit; Such as the execution that the is shown in Figure 11 synchronous the sort of circuit of doubleclocking interface function again.If the Memory Controller that adopts different clock systems rather than be operated in another clock frequency is implemented, then Figure 11 circuit can be used for and Mario chip processor interface.
The synchronous circuit again that is shown among Figure 11 receives and the nonsynchronous external clock signal DIN of clock signal C K.No matter the frequency of DIN is higher than or is lower than clock rate C K, again synchronous circuit all can by DIN produce one with the synchronous signal of CK.
As the explanation of Figure 12, circuit response signal DIN shown in Figure 11 is from state 010, through 110; 100,101,111 get back to initial state 010.The synchronous circuit again of Figure 11 can be used on any interface circuit such as ROM controller 104 and RAM controller 88 these classes reception doubleclocking signals.
Circuit reason door F shown in Figure 11 to latch A set so by will be from it the idle or attitude that resets " 010 " switch to state " 110 " and respond external signal DIN.In case synchronised clock CK step-down (perhaps being true) again, latch B is resetted by door E and forms state " 100 ", when clock uprises once more, makes latch C set formation state " 101 " by door A.
The Q of latch C in Figure 11 from shown in this circuit produce output.When input signal step-down once more, latch is just once more by door C set formation state " 111 ".When clock signal CK at arrival state " 111 " afterwards again during step-down, latch A is resetted by door G and forms state 011.After this clock CK uprises and by door B latch C is resetted, and gets back to the idle attitude of state machine, and its output is just inoperative.
Figure 13 illustrates the ROM controller 104 of Fig. 4 B in more detail.ROM controller 104 comprises cache loader 400, and it can partly be controlled the program command that will be stored in the current execution among ROM10 or the game card RAM and be written into chip cache RAM94.Instruction is that the group with 16 bytes loads cache RAM94's into.When in the middle of 16 byte section, running into transfer instruction, before carrying out transfer, still must fill up 16 complete byte section unceasingly.CACHE loaded circuit 400 comprises one 2 state machines, and it advances cache RAM94 by the remaining byte load of guaranteeing 16 byte CACHE sections and responds decoding to transfer instruction.First state of cache load logic state machine is an idle state, has been loaded into cache if program is carried out the scope or the routine data that exceed cache buffer memory device, and then this idle state is true.Second state shows the loading of cache and the execution of the instruction that comes from game card ROM or RAM is simultaneous.The third state is to be triggered by the decoding to transfer instruction, and this state is in effective all bytes in the cache section of 16 bytes and all is loaded.Just run into four condition when the address corresponding with cache 16 byte boundary inaccuracy fallen in this transfer when carrying out transfer, in this case, cache is filled into 16 byte section that part of corresponding to address that program shifted from the starting position on this border.
Cache loaded circuit 400 in the ROM controller 104 also receives WAIT(and waits for) and GO control signal, they show that the Mario processor is former thereby be in WAIT state and Mario chip in " work " or " RUN " mode because of some.Cache loaded circuit 400 generations one CODEFEFCH(code reads in this case) control signal, give the NOR door 408 that is shown among Figure 13, and then give the zero clearing input of ROM timer conter 406.As cache loaded circuit 400 generation code reading signal CODE FETCH, start-up code reads with regard to having precedence over data read, reads because must begin code before data read.The arbitration circuit that comprises prioritization logic shown in Figure 10 can be used to make the signal that is produced to be given the priority higher than data read.
Cancel from ROM timer conter 406 when reset signal, just start a count cycle.ROM timer conter 406 is used for producing ROM RDY timing signal, and it shows in the ROM data pins can obtain the ROM data, and this signal is from gate circuit 410 outputs.
ROM ready for data signal ROM RDY door links to each other with synchronous circuit 402 again, and this circuit for example can comprise synchronous circuit more illustrated in fig. 11.Reach with processor clock synchronously after, produces signal ROM DCK and latch 404 is resetted and produce the DATAFETCH signal indication access of register R14 has been triggered data read, and this causes sending the EN_R14 signal.When ROM timer conter 406 has reached regulation counting, just produce the DATAFETCH signal when guaranteeing on the ROM data pins, data to be obtained.
The output that ROM controller any one from following input shown in Figure 13 selected the multiplexer 414 of address signal produces the ROM address.Code storage district register 412 loads from Super NES data/address bus HD, to determine which ROM program storage area taking out and to carry out this Mario code from.Code storage district register 412 provides 8 of ROM address with 23 to multiplexer 414.The least significant bit of this ROM address is that the content from program counter PC obtains.When forward cache RAM write data, 4 least significant bits were to come from the CACHE LOAD signal that is produced by cache loader 400.The input of other multiplexer 414 addresses is when access function resister R14, produces from the content of Mario general register R14.
Access to R14 causes data read latch 404 to produce the DATAFETCH signal, and this signal makes multiplexer 414 select its R14 input (with the content from Super NES data/address bus HD loaded data memory block register 416) as control signal.This data storage area register 416 includes the highest significant position of the data storage area relevant with the R14 read operation.
Data read signal is given door 408 in addition, and it will start the counting that is undertaken by ROM timer conter 406, and then produces ROM ready signal ROM RDY through door 410, when the ROM rdy signal produces, just can be from ROM data/address bus ROM D[7:0] the acquisition data.
Address multiplexer 414 also receives from the next ROM address of Super NES address bus HA.To select Super NES address bus according to the state of the signal of giving multiplexer 414 control input ends " ROM "." ROM " control signal shows that to Mario ROM controller Super NES has the control to the ROM address bus.
After transfer instruction decoding, the content of program counter adds that four least significant bits that counter produced by the cache loader are transfused to address multiplexer 414.This allows to load the remainder of going up 16 bytes that loading before transfer is decoded to the cache section.
Multiplexer 422 provides in the ROM controller 104 from the data path of the destination bus Z of ROM data pins ROM D to Mario chip.Be fed to door 418 and the loading of ROM buffer 420 is carried out by the DATAFETCH signal of latch 404 generations with by the ROM rdy signal that ROM timer conter 406 produces.ROM data/address bus ROM D[7 ... 0] the ROM data of Laiing are put into ROM buffer 420.
An input is chosen in the decoding of multiplexer 422 response instruction codes (such as this class instruction code of the GET B that carries out data read automatically that triggers by access function resister R14).If to the decoding of code read operation, ROM controller 104 will be delivered to instruction the instruction bus in the Mario chip shown in Figure 15 A.If, be stored in the byte that is cushioned in the register 420 and just be placed on the Z-bus to GET B instruction decoding.Some GET B instruction manipulation relates on the X bus data through the corresponding input input of the multiplexer shown in Figure 13, and the data of giving destination bus Z can be put in the Mario general register 76 subsequently.
In 64 signs in the mark latch 506 each is all corresponding to 16 information that are stored among the cache RAM94.Take out from ROM or RAM instruction carry out in cache RAM94 carried instruction.Such when carrying out transfer instruction in as above explanation, RAM94 is coupled with the remaining byte of 16 byte section through the cache loader 400 with 104 explanations of the ROM controller shown in Figure 13.Before these remaining bytes, this whole byte section can not be masked as through mark latch 506 and load on loading.
Referring to gate circuit 510, when program counter count down to 15 from 0,14 subtracters, 502 outputs, one off-limits signal (it is inverted) when the ROM controller export its ROM ready for data signal ROMRDY(show will export a byte), gate circuit 510 just makes mark latch 506 at the position superset by demultiplexer 504 addressing.
When cache being instructed decoding; On bus 501, produce one and show that subsequent instructions will be from the control signal of cache RAM memory 94 execution.Control signal on the bus 501 is fed to the loading input of cache base register 500, and is used for to load program 13 highest significant positions of counter PC of cache base register 500.Simultaneously as shown in figure 14, mark latch 506 is cleared.
The output of cache base register 500 and the highest significant position of program counter (for example 3-15 position) are fed to subtracter 502, and it determines that address input that program counter PC comes is whether in the scope of cache RAM94.Subtracter 502 is for example exported the highest significant position of its six least significant bits as the cache address ram, and three least significant bits of address are then sent here from program counter PC.
The signal O/RANGE that goes beyond the scope produces from the carry output signals of subtracter 502, and is reversed.The super range signal of this upset is used for starting the set to a latch in the latch matrix 506 when high.This latch set will be depended on through the cache address output of demultiplexer 504 from subtracter 502, and corresponding with 16 byte section of cache RAM94, with show instruction be stored in the cache with the cache address ram of output local accordingly.The output of mark latch 506 is fed to multiplexer 512, it delivers to NOR door 514 with one in 64 mark latch signals, this latch signal is to determine that according to the selection input of multiplexer a certain corresponding latch signal is as output in 64 selection wires that it is selected with DEMUX504 exports.Another input that is input to NOR door 514 is the super range signal that shows that needed instruction can not be found thereby need to read from the outside in cache RAM94.
Figure 15 illustrates the block diagram of the ALU control/command decoder shown in Fig. 4 A.As shown in figure 15, ALU controller/command decoder 60 receives cache RAM94, the instruction of ROM controller 104 and RAM controller 88.These Mario chip components are not the parts of ALU/ command decoder, but only just draw in Figure 15 for ease of explanation.
When being started by program counter initiating signal PCEN.IL.IH, pipeline latch 527 receives 8 bit instructions of multiplexer, and this initiating signal is for example when just by ROM(or RAM) during reading command, by ROM controller 104(or RAM controller 88) produce.Because more than need spending a processing cycle from RAM or ROM reading command, thereby the command decoder operation is to be triggered by the program counter initiating signal PCEN that separately ROM or RAM controller 104,88 are produced.
On the other hand, if carry out from cache RAM taking-up instruction, program counter initiating signal PCEN works at all constantly, and the instruction execution is carried out at full speed with processor clock frequency.Because the access time of ROM10 is more many slowly than the access time of cache RAM94 or game card RAM, thereby during to the ROM access, produce the interval of PCEN signal, must be not as corresponding cache RAM, dynamically or the decoding initiating signal of static RAM (SRAM) frequent like that.
Temporarily exist the instruction of pipeline latch 527 to be exported to the instruction decoding circuit of n-lustrative ground, represent operation code 1,2 to produce by the routine of gate circuit 537,539 and 541 representatives ... the signal of N.
The instruction that loads influent stream waterline latch 527 also is fed to look-ahead logic 551.Look-ahead logic 551 is used to provide the decoding advance notice of operation code, and it will be used for choosing suitable register from Mario chip register piece 76.Like this, in order to optimize the speed of carrying out before command code is deciphered, promptly having determined needs by the register of access, so that the required data of this instruction are carried out zero access.
Look-ahead logic response instruction command code and various program decoding controlled flag.Instruction decoding circuit 60 comprises program control landmark detector logic 543, and its responds the operation code of having deciphered in the past and produces ALT1 and ALT2 signal, and is decoded to show aforesaid corresponding prefix instruction.The relevant therewith ALT1 PRE signal that the following describes is also produced by landmark detector logic 543.Produce IL and IH signal in addition and decipher (L and H refer to low byte and high byte respectively) here to show the instruction of needs having been counted immediately.IH and IL sign is used for stoping and relates to the instruction of counting immediately and be taken as command code decoding.Thereby also need non-IL signal (IL) and non-IH signal (IH) to start pipeline latch 527.ALT1 and ALT2 signal are used for revising the command code of follow-up generation as explained above, and for example are input in the decoding logic shown in the gate circuit 541 537,539,541 etc., according to the front output function sign indicating number are revised in the discussion of these signals.
The signal that look-ahead logic 551 is produced when deciphering according to the operation code of pre-decode with to previous operation code (for example prefix code ALT1 or ALT2) produces register selection signal.For example as shown in program control Mark Detection logic 543, if the ALT1 signal then produces ALT1 PRE signal by decoding logic 545 decodings, this signal is by 543 outputs of program control Mark Detection logic, and and then gives look-ahead logic 531 through OR door 549.This ALT1 PRE signal also makes 547 set of ALT1 latch.OR door 549 is also exported the ALT1 signal of latch 547, and gives decoding logic 537,539,541 etc. with the ALT1 signal.
Represent schematically in Figure 15 how look-ahead logic produces 4 registers and select control bit XSEL0, XSEL1, XSEL2 and XSEL3.These four control bits are given the multiplexer 620 and 622 that illustrates together in conjunction with register controlled logic 76 subsequently in Figure 17, this control logic is chosen in 16 registers one content and exported to the X bus and use for the instruction of just carrying out.
Like this, instruction is fed to decoding logic unit 529 in advance before putting into pipeline latch 527, and it produces a register and selects a position XSEL_U0, and then latchs into latch 535 and export as signal XSEL0 then.Latch 535 is started by program counter signal PCEN.Logical circuit 531 produces and latchs into latch 533 as the XSEL_U1 of signal XSEL1 output similarly.ALT1 PRE signal is fed to the various decoding logic circuits 529,531 in the look-ahead logic 551 etc., and is used to determine by the selected suitable register of register controlled logic 76.For example formerly shown in the line control circuit 551, ALT1 PRE signal be give logical circuit 531 one of signal its produce and be latched in the latch 533 and then the USEL_U1 of output signal U SEL1.
Figure 15 B illustrates the exemplary timing signal that is used to illustrate look-ahead logic 551 operations.Figure 15 B illustrates clock signal C K, with the exemplary instruction command code of relevant cache RAM data access.Also illustrate and show when pipeline latch is loaded, in the time of will executing instruction decoded operation, when producing register selection signal and the timing signal when being carried in the information that register comes on the destination Z-bus.
Shown in Figure 15 B, cache RAM data manipulation sign indicating number (command code 1) will become effectively in a certain moment after the clock pulse CK rising edge.Up to for example rising edge of second clock pulse, at this moment command code 2 is latched into latch 527 to op-code storage in pipeline latch 527.And then receive after the output of latch 227 that the command decoder sometime 60 that schematically draws begins deciphering with command code 1 corresponding instruction in Figure 18.The result of this instruction decoding correspondingly gives control signal such as ALU50 as mentioned above, and cache controller 68 and plotting hardware 52 wait this class Mario chip component.
The circuit 551 in advance that is shown among Figure 15 is beginning register selection decode procedure by a certain moment generation signal XSEL_U before command code 2 is deciphered.This XSEL_U0 signal representative is latched the into output of latch 535 decoding logic 529 before.For example, make that the required data of this instruction can be as soon as possible by access in instruction execution cycle, so that give corresponding bus as soon as possible at a time by latch 535 output XSEL-0 signals.
Be used for producing the part of register controlled logic 78 of the register selection signal of relevant Y and Z-bus shown in Figure 16.Multiplexer 604 choose 16 registers which will be written into from Z-bus, multiplexer 606 is then chosen that register of giving the Y bus.
Figure 17 illustrates block of registers 76 and selects control logic with the adjunct register in the register controlled logic 78 that is disposed at Fig. 4 B.By the FROMSET signal sets FROMX register 618 that FROM instruction decoding is just produced.One receives the FROMSET signal, and the content of Y bus just is loaded into register 618.The data of putting into register 618 become subsequently and are used in the executory data of subsequent instructions.The content of register 618 is used as one of input and gives multiplexer 622.Multiplexer 622 is gone back receiving register R0(and is used for default register) content as its input one of.
Another input of multiplexer 622 is the output of multiplexer 620.Multiplexer 620 receives the content of program counters (being register R15), when carrying out the MERGE instruction used register and register R1(for example carrying out mark and draw in the instruction used) input that comes is as input.Multiplexer 620 is chosen an input of these inputs according to the state of XSEL2 that is produced by the look-ahead logic 551 shown in Figure 15 A and XSEL3 position.
Another input and the content on the Y bus of multiplexer 622 are joined, being placed on the X bus with identical data on the Y bus.As previously mentioned, another input of multiplexer 622 is the output of above-mentioned FROM X register 618.The output of multiplexer 622 is to choose according to the state of XSEL0 that is produced among Figure 15 A and XSEL1 position, and gives X bus.
The special function relevant with the many registers among the register R0-R15 describes in detail in the above, will not repeat here.Multiplexer 608 is given in the output of register R0-R3, and multiplexer 610 is given in the output of register R4-R7, and multiplexer 612 is given in the output of register R8-R11, and multiplexer 614 is given in the output of register R12-R15.Multiplexer 608,610 is all chosen by YSEL1 and YSEL0 for one in 612,614 separately four inputs, and these are from 606 outputs of the multiplexer shown in Figure 16.Multiplexer 608,610,612 and 614 output and then be input to multiplexer 616.Multiplexer 616 is chosen in four inputs one according to the state of the YSEL2 of the multiplexer among Figure 16 606 output and YSEL3.Multiplexer 616 makes its output deliver to buffer register 617, its output and then deliver to the Y bus.
Get back to the input of register R0-R15, each register has one by as above in conjunction with the selected startings input in shown in Figure 16 and ZSEL position 0 to the position that produces 3.Each register also has clock input CK and data input DATA-IN, is correspondingly receiving data through this data input pin from Z-bus after the buffering.
The register R4 that uses in conjunction with various multiply operations also comprises inactive low level and inactive high-order input and permission low level and the high-order input of permission.Register R15 is program counter PC, and it can receive the signal CCHLD of the cache loader 400 from the ROM controller of Figure 13, forbids transfer operation before current cache 16 byte section are put into cache RAM.Program counter receives a program cycle halt signal LOOPEN from command decoder in addition, and this shows to such an extent that carry out branch transition and allows to add to PC the content of register R13.The input RN of counter when register R15 receives power-on reset signal RESET in addition and carries out recursion instruction loads program the content of register R13.
As mentioned above, graphics coprocessor of the present invention can be conveniently used for producing in conjunction with main video game system and relate to for example based on the rotation of target polygon, the various special-effects of amplifying and/or dwindling.Figure 18 is the flow chart of exemplary Mario chip program of trapezoidal usefulness that draws, explanation can be how to the Mario chip programming to produce the part based on polygonal target to display.Propose below a kind ofly to be used to produce the polygonal Mario program of this class simultaneously to the how in addition detailed explanation of executive program of Mario hardware.
At first referring to the high-level flow shown in Figure 18, at first variable used in some register of block of registers R1 to R15 and the trapezoidal generation is associated (register R1 storage pixel X position for example, the register R2 storage pixel Y position line, register R7 stores trapezoidal height etc.).After this, shown in square frame 650, set up cycle counter and calculating original pixel values.
Shown in square frame 652, inquire about subsequently to determine the length of one of trapezoidal horizontal line.The result who deducts the starting point of this line as if the terminal point from this line is that (VE), then this program branches is transferred to square frame 660 to negative value.If deducting the result of the starting point of this line from the terminal point of this line is the length that does not also exceed this line on the occasion of showing, cycle counter is successively decreased (654) and carries out and mark and draw pixel instruction and the suitable pixel (656) of drawing.
Shown in square frame 658, whether the content of inquiring about subsequently to determine cycle counter serves as zero.Then shift with branch transition back side frame 654 so that cycle counter (654) successively decreases and marks and draws one other pixel (656) if cycle counter is non-vanishing.
If cycle counter equals zero, then the X coordinate in polygon left side and the X coordinate on polygon right side are updated (660).After this make trapezoidal Y HEIGHT(Y height) successively decrease (622), if the non-vanishing then program of result will re-execute (664) by branch transition back side frame 650, the Y coordinate is increased progressively to move on to next scan line (665).If Y HEIGHT equals zero, then program will all be carried out, trapezoidal just finish (666).
Utilization for explanation produces the Mario chip instruction set of figure provides the trapezoidal exemplary sequence of embodiment Figure 18 flowchart drawing below.
; Draw trapezoidal circulation
Rx=1; Mark and draw the x position
Ry=2; Mark and draw the y position
Rx1=3; X position, top line left side
Rxlinc=4; X position, top line left side increases progressively
Rx2=5; X position, top line right side
Rx2inc=6; X position, top line right side increases progressively
Rdy=7; Trapezoidal y height
Rlen=12; Cycle count, horizontal line (hline) length
Rloop=13; Cycle labeling
hlines
Miwt rloop, hlines2; Set the initial of hline circulation
hlines1
mfrom rx1 ;x=(rx1)>>8
mto rx
mhib
mfrom rx2
mhib
mto rlen
Msub rx; Length, rlen=(rx2〉〉 8)-(rx1〉〉 8)
mnop
Minc rlen; Always draw a pixel
hlines2
mloop
Mplot; Draw horizontal line
hlines3
mwith rx1 ;rx1+=rxlinc
madd rxlinc
mwith rx2 ;rx2+=rx2?inc
madd rx2?inc
mdec rdy ;rdy-=1
Mbne hlines; Repeat number rdy time
1
Minc ry; With descending next y
For how explanation Mario chip hardware is used for executive program, the following description is at the trapezoidal generator that provides above.Before carrying out trapezoidal generator, for example Super NES is direct as top explanation in conjunction with Fig. 5 flow chart is explained writes to code storage district register and panel base register for mainframe computer system.In addition, Super NES will write the local register the ROM controller 104 from the low byte of the XEQ address that Super NES address bus HA decoding draws.Super NES writes high byte ROM controller 104 subsequently, and the content combination of it and this local register is also delivered to Z-bus.After this start the program counter of register R15 as the Mario chip.
Super NES makes " GO " flag set of Mario to the back edge of ROM controller 104 write operations above detecting.If program counter subtracts the cache base register greater than cache capacity, or the long-pending cache base register that deducts of cache sign and program counter equals zero divided by 16, just the content of program counter given ROM10 and started ROM timer conter (Figure 13 square frame 406).
At the beginning, before carrying out the trapezoidal subprogram of drafting, the variable that is used for trapezoidal cyclic program is associated with Super Mario register, as shown in the initial part of trapezoid program row, for example, " rx " as " marking and drawing the X position " is associated with register R1, and variable " rloop " then is associated with register R13.
Distribute after these registers, trapezoid program begins following execution.ROM timer conter in ROM controller 104 reaches 5 counting (nearly 200 nanoseconds), just the article one that will carry out instruction " IWT rloop, hlines2 " is latched pipeline register 62 Fig. 4 A into from the ROM data/address bus.Data are written into cache RAM94 simultaneously.When execution command " IWT rloop, hlines ", program counter is increased progressively.It is immediate datas with following two bytes that show instruction stream that " IL " and " IH " sign is set.When ROM timer conter 406 reaches 5, just immediate data (low byte) is write cache store towards RAM94, and be kept at the temporary register in the ROM controller 104.Repeat ROM and read function, this high byte of counting immediately combines and delivers to Z-bus with low byte.For cycle counter being set, the content that plays dynamic register file R13 and store Z-bus at there.Begin constantly at this of this routine, just read every instruction till running into recursion instruction from memory.
When execution command " FROM RX1 ", minimum four four " FROM Y " register 602(that are put in the register controller of instruction code see Figure 16).Allow RX1(register R3 in addition) Y bus and it is deposited into 16 " FROM X " registers 618 on the data of coming.When carrying out " TO RX " instruction, minimum four four " starting Z " register 600(that are put in the register controller of instruction code see Figure 16).
" HIB " instruction is to carry out by X bus that the sixteen bit content of " FROM X " register is packed into.ALU is put into the high byte of X bus on the low byte of Z-bus and makes the high byte on the Z-bus be made as zero.This remove the fractional part of X position and at register RX(register R1) stay the first horizontal starting point.
When execution command " FROM RX2 ", carry out and carry out similar operation in " FROM RX1 " as mentioned above.Should " HIB " instruction cause trapezoidal top line right side X coordinate is operated (be similar to top said those) thus the first horizontal terminal point is stayed the default register of register R0(as accumulator).
" RLEN " instruction and " SUB RX " instruction are to deduct the RLEN(12 that the starting point of this line is performed by the terminal point from line)=R0-Rx.If the result is for negative, symbol will be set, and show the condition vacation.
" BMI HLINES3 " instruction is two-byte instruction, if symbol set, first byte is just set up a sign.If condition flag set, second byte is to shift skew (R15 equal R15 add this instruction) here.If not R15 is not replaced and program continues normally to carry out.
Carry out " INC RLEN " instruction so that the line length register adds 1 to guarantee a marking and drawing pixel at least." LOOP " instruction is used to carry out the calculating of R12=R12-1.If R12 is not zero, then the R15(program counter) load onto 13 content and carry out transfer by this.
If program this moment is in the scope of cache RAM94, then cache loading circuit 400 will detect this transfer, and continue to load cache RAM94, and suspend executive program in doing so.During end, program counter adds its new value and instruction below cache RAM94 reads.
For carrying out " plotting " instruction, circulation/plotting instruction pairing forms the algorithm that horizontal line is drawn.Marking and drawing instruction will make by R1, R2(as X and Y coordinates) the panel pixel of addressing is set at the colour that sets in " the COLOR register " 54 shown in Fig. 4 A.Calculate by marking and drawing hardware 52 address of containing the character of this pixel.This new pixel data is kept at character line buffer (colour matrix), moves on to a different character position up to the Mario chip and marks and draws.When all colour informations have all copied to the second level of the double buffering mechanism in the colour matrix, just this information is written to external RAM.
" ADD RX1 INC " instruction of carrying out " WITH RX1 " is to upgrade this trapezoidal left side X coordinate." WITH RX2 " and " ADD RX2 INC " is used for upgrading trapezoidal right side similarly." DEC RDY ", " BNE Hlines1 " and " INC RY " instruction is used for moving on to next Y position (next scan line) and finishes up to trapezoidal.
Following procedure tabulate can be how to the Mario chip programming so that 8 X, the array rotation that Y and Z are ordered.This program description exemplary embodiments according to the present invention is programmed to carry out rotary manipulation to graphics coprocessor.Provide the tabulation of this program below:
LISTING ROTATE:
; By register rmat 1211, rmat 2133, and rmat 2322, ramt3231,8 X of spin matrix rotation among the rmat0033, the matrix that Y, Z are ordered
; Matrix element is 8 bit strip symbol decimals
; Be that 127=127/128=is near 1
;-128=-128/128=-1
; These all are compressed and are stored in each register as 28 bit locations
rx =1 ;x
ry =2 ;y
rz =3 ;z
rt =4 ;temp
Rmat 1211=5; Matrix element 11 and 12
Rmat 2113=6; Matrix element 13 and 21
Rmat 2322=7; Matrix element 22 and 23
Rmat 3231=8; Matrix element 31 and 32
Rmat 0033=9; Matrix element 33
Routptr=10; To point of rotation buffer pointer (ptr)
msh-rotpoints8
Miwt r14, pointsaddr; The ROM that points to the point of rotation of wanting refers to
Pin
Miwt r12, numpoints; The number of the point that rotates
Miwt routptr, m-rotp-; Point to the RAM of point of rotation buffer
The nts pointer
Mcache; Set the cache address
Mmove r13, pc; The initial cycle address
mmatrotploop
Mto rx; Get x
mgetb
minc r14
mfrom rmat 1211 ;11
mto rt
mmult rx ;m11*x
Mto ry; Get y
mgetb
minc r14
mfrom rmat?2113 ;21
mhib
mmult ry ;m21*y
mto rt
madd rt
Mto rz; Get z
mgetb
minc r14
mfrom rmat 3231 ;31
mmult rz ;m31*z
madd rt
madd r0
mhib
Mstb (routptr); Store postrotational x
minc routptr
mfrom rmat?1211 ;12
mhib
mto rt
mmult rx ;m12*x
mfrom rmat?2322 ;22
mmult ry ;m22*y
mto rt
madd rt
mfrom rmat?3231 ;32
mhib
mmult rz ;m32*z
madd rt
madd r0
mhib
Mstb (rout ptr); Store postrotational y
minc routptr
mfrom rmat?2113 ;13
mto rt
mmult rx ;m13*x
mfrom rmat?2322 ;23
mhib
mmult ry ;m23*y
mto rt
madd rt
mfrom rmat?0033 ;33
mmult rz ;m33*z
madd rt
madd r0
mhib
Mstb (routptr); Store postrotational z
mloop
minc routptr
Figure 19,20 and 21 explanations producible some special-effect when for example Super NES uses programmable graphics coprocessor of the present invention in conjunction with mainframe computer system.As shown in figure 19, the end view that to depict a target be helicopter.This figure is not intended to reflect exactly the high-quality demonstration of using the Mario chip to produce.Figure 20 and 21 illustrate image amplification and rotation of the helicopter that Figure 19 provides.Graphics coprocessor of the present invention can be used to produce and comprises the 3D type based on polygonal target that relates to high speed rotating and convergent-divergent (with other) special-effect, and only minimally increases the weight of the burden that host processing system is looked in the TV trip.
The present invention has explained and figure has released, and should be appreciated that detailed announcement only is as description and interpretation.Though the foregoing description is considered preferred embodiment, should be appreciated that these those skilled in the art can make multiple variation and change, and following claim is used for covering variation and the change of this class within essence of the present invention and protection range just.
Claims (39)
1, a kind of information processing system (19,20) external storage system in (19), this information processing system has the Main Processor Unit (20) that execution is stored in the TV graphical program in the external memory storage (10) in the external storage system (19) at least in part, and described external storage system is characterized in that:
Have at least a connector (1) to be used for described external storage system is linked to each other with described host processing system;
One external memory storage (10) is used to store first group of program command of the described TV graphical program of being carried out by described Main Processor Unit and is used to store second group of instruction of described TV graphical program;
One graphic process unit (2) links to each other with described external memory storage (10), and links to each other with described Main Processor Unit (20) through described at least one connector (1) in use, to carry out described second group of instruction.
2, external storage system as claimed in claim 1 is characterized in that described Main Processor Unit (20) is the Main Processor Unit of video game system and described external storage system is configured in the video game card (19).
3, external storage system as claimed in claim 1 is characterized in that also comprising: linking to each other with described graphic process unit (2) with described external memory storage (10) is used for the transfer address, the external memory bus of data and control information; Random access memory unit (6,8); Link to each other with described graphic process unit (2) with described random access memory unit (6,8) and to be used for the transfer address, the random access memory unit bus of data and control information; Be used for transfer address between described graphic process unit and described Main Processor Unit, the Main Processor Unit bus of data and control information.
4, external storage system as claimed in claim 3 is characterized in that described graphic process unit comprises the device (131) that at least one access in described external memory bus and the described random access memory unit bus is carried out.
5, external storage system as claimed in claim 1, it is characterized in that described graphic process unit (2) comprises that the device (HA, 133) of the address information of reception from described Main Processor Unit is so that identification has the external memory locations of the instruction that will be carried out by graphic process unit.
6, external storage system as claimed in claim 1 is characterized in that described graphic process unit comprises: carry out in the described second group of instruction be stored in the described external memory storage plotting circuit (52) that the ALU of some instruction (50) and execution at least are stored in the instruction of at least one the relevant demonstration in the described external memory storage.
7, external storage system as claimed in claim 6, it is characterized in that also comprising the first data source end bus (X), the second data source end bus (Y) and a data destination bus (Z), each described bus all link to each other with described plotting circuit (52) with described ALU (50).
8, external storage system as claimed in claim 1, it is characterized in that described graphic process unit also comprises cache controller (68) and the cache (94) that links to each other with described cache controller (68), described graphic process unit comprises that execution is stored in the device (95 that instructs in the described cache, 60,50).
9, external storage system as claimed in claim 1, it is characterized in that described graphic process unit comprises a plurality of registers (76), described graphic process unit comprises that also response automatically starts the device (104) to outside memory read operations to the access of the register (R14) of regulation in described a plurality of registers (76).
10, external storage system as claimed in claim 1 is characterized in that described external memory storage is program read-only memory (ROM) and and then comprises a random-access memory (ram) that links to each other with described graphic process unit.
11, external storage system as claimed in claim 1 is characterized in that described graphic process unit and described Main Processor Unit can move execution command concurrently.
12, external storage system as claimed in claim 1 is characterized in that described graphic process unit comprises the device (62,60) of each instruction of carrying out being formed streamline.
13, external storage system as claimed in claim 1 is characterized in that described graphic process unit comprises device (60) that described second group of instruction deciphered and the device (551) in advance of anticipating operation code before dependent instruction decoding.
14, external storage system as claimed in claim 1, it is characterized in that described information processing system (20) comprises the display (36) of display-object, and described second group of instruction comprises that the instruction that makes the rotation of described target, described graphic process unit comprise the device of carrying out the described instruction that is used to rotate described target.
15, a kind of video game system (19,20) that uses with TV class display (36) is characterized in that:
Recreation microprocessor (22) is used for carrying out the instruction of video game program, with the screen processing (24) that links to each other with described recreation microprocessor in case under the control of described recreation microprocessor (22) execution picture Processing tasks;
Program storage (10), the program that is used for storing described video game;
Programmable graphics processor (2) also in use is connected with described recreation microprocessor (22) to carry out the program command of some described video game at least with described program storage is continuous.
16, video game system as claimed in claim 15 is characterized in that also comprising: link to each other with described programmable graphics processor (2) with described program storage (10), be used for the program storage bus of transfer address, data and control information; Random access memory unit, linking to each other with described programmable graphics processor (2) with described random access memory unit (6,8) is used for the bus of access memory unit with the letter of transfer address, data and control information; Transfer address between described programmable graphics processor (2) and described game processor (22), the game processor bus of data and control information.
17, video game system as claimed in claim 15 is characterized in that described programmable graphics processor (2) comprising: carry out to be stored in the instruction of second portion described in the described program storage plotting circuit (52) that the ALU of some instruction (50) and execution at least are stored in the instruction of at least one relevant demonstration in the described program storage.
18, video game system as claimed in claim 15, it is characterized in that described programmable graphics processor (2) also comprises cache controller (68) and the cache (94) that links to each other with described cache controller (68), described programmable graphics processor comprises that execution is stored in the device (95 that instructs in the described cache, 60,50), described by this graphic process unit and described recreation microprocessor can execute instruction concurrently.
19, video game system as claimed in claim 15 is characterized in that described recreation microprocessor (22) and screen processing (24) are configured in the video game system Main Processor Unit (20) and described program storage (10) and graphic process unit (2) are configured in the video game card (19).
20, a kind of programmable graphics processor is used for having the information processing system of first processing unit (20) of the first that can carry out the TV graphical program that is stored in external memory storage (10) at least, it is characterized in that,
From the device of described external memory storage (10) reception from the instruction of described TV graphical program second portion;
At least can carry out the device (60,50,52) of the described second portion of described TV graphical.
21, programmable graphics processor as claimed in claim 20 is characterized in that also comprising that reception has the device of the external memory locations of the instruction that will be carried out by graphic process unit with identification from the next address information of described first processing unit.
22, programmable graphics processor as claimed in claim 21 is characterized in that the device of described receiver address information comprises external memory stores district register that receives sign external memory stores regional address information and the program counter that is identified at position in the described memory storage area.
23, programmable graphics processor as claimed in claim 20 is characterized in that described graphic process unit comprises being used for storing and comprises that the current sign that is moving of graphic process unit, graphic process unit given interrupt signal the status register device of multiple graphic process unit Status Flag of the sign of first processing unit.
24, programmable graphics processor as claimed in claim 20 is characterized in that described graphic process unit comprises the ALU (50) that can carry out some instruction in the second portion that is stored in TV graphical program described in the described external memory storage at least and the plotting circuit (52) of carrying out the instruction that is stored at least one relevant demonstration in the described external memory storage.
25, programmable graphics processor as claimed in claim 24, it is characterized in that also comprising the first data source end bus (X), the second data source end bus (Y) and data destination sum (Z), described each bus all link to each other with described plotting circuit with described ALU.
26, programmable graphics processor as claimed in claim 20, it is characterized in that also comprising cache controller (68) and the cache (94) that links to each other with described cache controller, be stored in the device (95 of the instruction in the described cache with execution, 60,50).
27, programmable graphics processor as claimed in claim 20 is characterized in that also comprising:
At least carry out the device (50) of an instruction;
Storing the status register of various states condition;
Command decoder (62), respond at least one state in the described status condition, the instruction that makes described at least one regulation is just controlled described device when described status register and is carried out starting first operation under certain situation, and carries out starting second operation when described status register just makes described device under second situation.
28, programmable graphics processor as claimed in claim 20 is characterized in that described information processing system and display link and described graphic process unit and described first processing unit pull together to control shown target rotation.
29, programmable graphics processor as claimed in claim 28 is characterized in that described final controlling element comprises the plotting circuit (52) that will become based on the data conversion of pixel format based on the data of character format.
30, a kind of graphic process unit (2), it uses with host processing system (20) and the program storage of storing the TV graphical program, and described graphic process unit is characterised in that:
One ALU (50) is used for carrying out the instruction that is stored in the described program storage;
One program memory controller (104), control also makes the access of at least one startup of described host processing system (10) and described graphic process unit to described program storage selectively to the access of described program storage.
31, graphic process unit as claimed in claim 30 is characterized in that also comprising cache (94), and described program memory controller (104) comprises pack into the device of described cache of program command.
32, graphic process unit as claimed in claim 30, it is characterized in that described graphic process unit (2) links to each other with the program memory address bus, and described program memory controller comprises that selecting an address is placed on multiplexer (414) on the described program memory address bus.
33, graphic process unit as claimed in claim 30, it is characterized in that also comprising a plurality of registers (76), described program memory controller (106) comprises response in described a plurality of registers device of reading of starting sequence memory data by access and automatically.
34, graphic process unit as claimed in claim 30 is characterized in that described graphic process unit (2) links to each other with random-access memory (ram) (6,8), and and then comprises that one controls the RAM controller (88) to described RAM access.
35, a kind of graphic process unit (2), it and host processing system (20), the program storage (10) of storage TV graphical program, and random-access memory (ram) (6,8) uses together, described graphic process unit is characterised in that,
Receive the device (HA) of address ram from described host processing system;
Produce the graphic processing facility of address ram;
One RAM controller (88), it is selected between the address that the address ram of host processing system and graphic processing facility produce, and gives described RAM with it.
36, graphic process unit as claimed in claim 35, it is characterized in that also comprising at least one status register, and described RAM controller comprises the situation that receives at least one mode bit that address (DEOTADOR) that address (HA) that host processing system produces and graphic processing facility produce and basis be stored in a described status register multipath conversion apparatus (308) of giving described RAM with described address.
37, the external storage system in a kind of information processing system has host processing system (20) and the external storage system (19) that links to each other with described main system in the described information processing system (19,20), described external storage system is characterised in that:
Program storage (10);
Annex memory (6,8);
The graphic process unit (2) that links to each other with described program storage (10) and described annex memory (6,8);
Described graphic process unit comprises:
Control is to the program memory controller (104) of described program storage access;
Control is to the annex memory controller (88) of described extra storage access.
38, external storage system as claimed in claim 37 is characterized in that described additional controller (88) is included in receive a plurality of for the device of determining priority between the access request of described annex memory.
39, external storage system as claimed in claim 38 is characterized in that also comprising and marks and draws circuit (52) that described annex memory controller (88) reception shows to be needed storage access so that carry out the plotting request signal of marking and drawing operation.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US07/827,098 | 1992-01-30 | ||
| US07/827,098 US5388841A (en) | 1992-01-30 | 1992-01-30 | External memory system having programmable graphics processor for use in a video game system or the like |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN1076378A true CN1076378A (en) | 1993-09-22 |
| CN1048564C CN1048564C (en) | 2000-01-19 |
Family
ID=25248311
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN92112795A Expired - Fee Related CN1048564C (en) | 1992-01-30 | 1992-10-31 | External memory system having programmable graphics processor for use in a video game system or the like |
Country Status (10)
| Country | Link |
|---|---|
| US (6) | US5388841A (en) |
| EP (2) | EP1262921A3 (en) |
| JP (2) | JP3335695B2 (en) |
| KR (1) | KR100280939B1 (en) |
| CN (1) | CN1048564C (en) |
| AT (1) | ATE229197T1 (en) |
| AU (1) | AU657147B2 (en) |
| CA (1) | CA2074554C (en) |
| DE (1) | DE69232865T2 (en) |
| TW (1) | TW226448B (en) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6646653B2 (en) | 1992-01-30 | 2003-11-11 | A/N Inc. | Programmable graphics processor for use in a video game system or the like |
| CN114422801A (en) * | 2021-12-31 | 2022-04-29 | 山东云海国创云计算装备产业创新中心有限公司 | Method, system, device and storage medium for optimizing video compression control logic |
Families Citing this family (140)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CA2074388C (en) * | 1992-01-30 | 2003-01-14 | Jeremy E. San | Programmable graphics processor having pixel to character conversion hardware for use in a video game system or the like |
| EP0571138A3 (en) * | 1992-05-20 | 1995-03-29 | Codemasters Ltd | Memory cartridge and interface for video game console. |
| US5758185A (en) * | 1992-10-01 | 1998-05-26 | Hudson Soft Co. Ltd. | Method for resetting a system controlled by a CPU and having a semi-autonomous IC unit |
| US5798785A (en) * | 1992-12-09 | 1998-08-25 | Discovery Communications, Inc. | Terminal for suggesting programs offered on a television program delivery system |
| US6147696A (en) * | 1993-06-24 | 2000-11-14 | Nintendo Co. Ltd. | Electronic entertainment and communication system |
| US6762733B2 (en) * | 1993-06-24 | 2004-07-13 | Nintendo Co. Ltd. | Electronic entertainment and communication system |
| CA2127053C (en) * | 1993-07-02 | 2005-01-04 | Makoto Furuhashi | Method and apparatus for time-sharing cpu system bus in image generation system |
| JP3366413B2 (en) * | 1993-07-27 | 2003-01-14 | 任天堂株式会社 | Display information conversion apparatus and information processing system |
| JP3904244B2 (en) | 1993-09-17 | 2007-04-11 | 株式会社ルネサステクノロジ | Single chip data processor |
| US5828862A (en) * | 1994-05-04 | 1998-10-27 | International Business Machines Corporation | Game programming flash memory cartridge system including a programmer and a reprogrammable cartridge |
| US5706478A (en) * | 1994-05-23 | 1998-01-06 | Cirrus Logic, Inc. | Display list processor for operating in processor and coprocessor modes |
| US5779548A (en) * | 1994-06-28 | 1998-07-14 | Sega Enterprises, Ltd. | Game apparatus and method of replaying game |
| JPH0816530A (en) * | 1994-07-04 | 1996-01-19 | Kurieiteibu Design:Kk | Coprocessor system and external memory device with auxiliary operation function |
| US6735683B2 (en) | 1994-09-14 | 2004-05-11 | Hitachi, Ltd. | Single-chip microcomputer with hierarchical internal bus structure having data and address signal lines coupling CPU with other processing elements |
| US6115036A (en) * | 1994-10-31 | 2000-09-05 | Nintendo Co., Ltd. | Video game/videographics program editing apparatus with program halt and data transfer features |
| US5680533A (en) * | 1994-10-31 | 1997-10-21 | Nintendo Co., Ltd. | Videographics program/video game fabricating system and method |
| US5680534A (en) * | 1994-10-31 | 1997-10-21 | Nintendo Co., Ltd. | Video game/videographics program fabricating system and method with superimpose control |
| US5599231A (en) * | 1994-10-31 | 1997-02-04 | Nintendo Co., Ltd. | Security systems and methods for a videographics and authentication game/program fabricating device |
| US5592609A (en) * | 1994-10-31 | 1997-01-07 | Nintendo Co., Ltd. | Video game/videographics program fabricating system and method with unit based program processing |
| JP2742394B2 (en) * | 1994-12-02 | 1998-04-22 | 株式会社ナムコ | Game program and data reading method, and game device using the same |
| US6009523A (en) * | 1995-02-08 | 1999-12-28 | Sega Enterprises, Ltd. | Information processing apparatus with security checking function |
| US5984785A (en) * | 1995-05-10 | 1999-11-16 | Nintendo Co., Ltd. | Operating device with analog joystick |
| US6241611B1 (en) | 1995-05-10 | 2001-06-05 | Nintendo Co., Ltd. | Function expansion device and operating device using the function expansion device |
| US5880739A (en) * | 1995-06-06 | 1999-03-09 | Compaq Computer Corporation | Blitting of images using instructions |
| WO1997006490A1 (en) * | 1995-08-09 | 1997-02-20 | Cirrus Logic, Inc. | Parasitic personal computer interface |
| US6283857B1 (en) | 1996-09-24 | 2001-09-04 | Nintendo Co., Ltd. | Three-dimensional image processing apparatus with enhanced automatic and user point of view control |
| JP3524247B2 (en) | 1995-10-09 | 2004-05-10 | 任天堂株式会社 | Game machine and game machine system using the same |
| JPH09167050A (en) | 1995-10-09 | 1997-06-24 | Nintendo Co Ltd | Operating device and image processing system using the same |
| JP3544268B2 (en) | 1995-10-09 | 2004-07-21 | 任天堂株式会社 | Three-dimensional image processing apparatus and image processing method using the same |
| CA2205063C (en) | 1995-10-09 | 2003-11-18 | Satoshi Nishiumi | Three-dimensional image processing system |
| US6007428A (en) | 1995-10-09 | 1999-12-28 | Nintendo Co., Ltd. | Operation controlling device and video processing system used therewith |
| WO1997017651A1 (en) * | 1995-11-10 | 1997-05-15 | Nintendo Co., Ltd. | Joystick apparatus |
| US6190257B1 (en) | 1995-11-22 | 2001-02-20 | Nintendo Co., Ltd. | Systems and method for providing security in a video game system |
| US6155926A (en) | 1995-11-22 | 2000-12-05 | Nintendo Co., Ltd. | Video game system and method with enhanced three-dimensional character and background control |
| US6267673B1 (en) | 1996-09-20 | 2001-07-31 | Nintendo Co., Ltd. | Video game system with state of next world dependent upon manner of entry from previous world via a portal |
| US6139433A (en) * | 1995-11-22 | 2000-10-31 | Nintendo Co., Ltd. | Video game system and method with enhanced three-dimensional character and background control due to environmental conditions |
| US6022274A (en) * | 1995-11-22 | 2000-02-08 | Nintendo Co., Ltd. | Video game system using memory module |
| US6331856B1 (en) | 1995-11-22 | 2001-12-18 | Nintendo Co., Ltd. | Video game system with coprocessor providing high speed efficient 3D graphics and digital audio signal processing |
| US6071191A (en) | 1995-11-22 | 2000-06-06 | Nintendo Co., Ltd. | Systems and methods for providing security in a video game system |
| US5726894A (en) * | 1995-12-21 | 1998-03-10 | Pitney Bowes Inc. | Postage metering system including means for selecting postal processing services for a sheet and digitally printing thereon postal information pertaining to each selected postal processing service |
| JPH09223098A (en) * | 1996-02-19 | 1997-08-26 | Sega Enterp Ltd | Image extension function board and electronic device using the same |
| US5970510A (en) * | 1996-04-10 | 1999-10-19 | Northrop Grumman Corporation | Distributed memory addressing system |
| US6241610B1 (en) | 1996-09-20 | 2001-06-05 | Nintendo Co., Ltd. | Three-dimensional image processing system having dynamically changing character polygon number |
| US6244959B1 (en) | 1996-09-24 | 2001-06-12 | Nintendo Co., Ltd. | Three-dimensional image processing system with enhanced character control |
| US6139434A (en) | 1996-09-24 | 2000-10-31 | Nintendo Co., Ltd. | Three-dimensional image processing apparatus with enhanced automatic and user point of view control |
| US5987568A (en) * | 1997-01-10 | 1999-11-16 | 3Com Corporation | Apparatus and method for operably connecting a processor cache and a cache controller to a digital signal processor |
| US6336166B1 (en) * | 1997-04-07 | 2002-01-01 | Apple Computer, Inc. | Memory control device with split read for ROM access |
| US5978781A (en) * | 1997-05-08 | 1999-11-02 | Pitney Bowes Inc. | Digital printing, metering, and recording of other post services on the face of a mail piece |
| JP3655438B2 (en) | 1997-07-17 | 2005-06-02 | 任天堂株式会社 | Video game system |
| JPH11207034A (en) * | 1997-11-20 | 1999-08-03 | Nintendo Co Ltd | A game system that can be played between different types of game machines using backup data |
| US6667759B2 (en) * | 1997-12-31 | 2003-12-23 | At&T Corp. | Video phone form factor |
| US6191793B1 (en) | 1998-04-01 | 2001-02-20 | Real 3D, Inc. | Method and apparatus for texture level of detail dithering |
| JP3791728B2 (en) * | 1998-06-03 | 2006-06-28 | コナミ株式会社 | GAME SCREEN DISPLAY CONTROL METHOD, GAME SYSTEM, AND COMPUTER-READABLE RECORDING MEDIUM |
| US6480205B1 (en) | 1998-07-22 | 2002-11-12 | Nvidia Corporation | Method and apparatus for occlusion culling in graphics systems |
| US6334180B1 (en) * | 1999-06-27 | 2001-12-25 | Sun Microsystems, Inc. | Processor coupled by visible register set to modular coprocessor including integrated multimedia unit |
| US7120509B1 (en) * | 1999-09-17 | 2006-10-10 | Hasbro, Inc. | Sound and image producing system |
| US6775414B1 (en) | 1999-11-19 | 2004-08-10 | Ati International Srl | Variable-length code decoder |
| US7209140B1 (en) * | 1999-12-06 | 2007-04-24 | Nvidia Corporation | System, method and article of manufacture for a programmable vertex processing model with instruction set |
| JP4658282B2 (en) * | 1999-12-22 | 2011-03-23 | 株式会社ユニバーサルエンターテインメント | Slot machine |
| US6807620B1 (en) * | 2000-02-11 | 2004-10-19 | Sony Computer Entertainment Inc. | Game system with graphics processor |
| TW501045B (en) * | 2000-03-03 | 2002-09-01 | Sony Computer Entertainment Inc | Entertainment device and computer system having exchangeability |
| EP1275042A2 (en) * | 2000-03-06 | 2003-01-15 | Kanisa Inc. | A system and method for providing an intelligent multi-step dialog with a user |
| US7159041B2 (en) * | 2000-03-07 | 2007-01-02 | Microsoft Corporation | Method and system for defining and controlling algorithmic elements in a graphics display system |
| US7988559B2 (en) * | 2001-03-08 | 2011-08-02 | Igt | Computerized gaming system, method and apparatus |
| CA2402389A1 (en) * | 2000-03-08 | 2002-09-19 | Shuffle Master, Inc. | Computerized gaming system, method and apparatus |
| US7043641B1 (en) * | 2000-03-08 | 2006-05-09 | Igt | Encryption in a secure computerized gaming system |
| JP3695277B2 (en) * | 2000-03-30 | 2005-09-14 | ヤマハ株式会社 | Display control device |
| US6894686B2 (en) | 2000-05-16 | 2005-05-17 | Nintendo Co., Ltd. | System and method for automatically editing captured images for inclusion into 3D video game play |
| JP3964142B2 (en) * | 2000-08-15 | 2007-08-22 | 株式会社ソニー・コンピュータエンタテインメント | Emulation device and component, information processing device, emulation method, recording medium, program |
| US6828975B2 (en) * | 2001-03-01 | 2004-12-07 | Microsoft Corporation | Method and system for managing graphics objects in a graphics display system |
| US6966837B1 (en) | 2001-05-10 | 2005-11-22 | Best Robert M | Linked portable and video game systems |
| US7916124B1 (en) * | 2001-06-20 | 2011-03-29 | Leapfrog Enterprises, Inc. | Interactive apparatus using print media |
| JP2003000951A (en) * | 2001-06-22 | 2003-01-07 | Konami Computer Entertainment Osaka:Kk | Game advancing program, game advancing method and video game apparatus |
| US7418344B2 (en) * | 2001-08-02 | 2008-08-26 | Sandisk Corporation | Removable computer with mass storage |
| US7336174B1 (en) * | 2001-08-09 | 2008-02-26 | Key Control Holding, Inc. | Object tracking system with automated system control and user identification |
| US6902481B2 (en) * | 2001-09-28 | 2005-06-07 | Igt | Decoupling of the graphical presentation of a game from the presentation logic |
| US7931533B2 (en) * | 2001-09-28 | 2011-04-26 | Igt | Game development architecture that decouples the game logic from the graphics logics |
| US8708828B2 (en) * | 2001-09-28 | 2014-04-29 | Igt | Pluggable modular gaming modifiers and configuration templates for gaming environments |
| JP3647797B2 (en) * | 2001-11-28 | 2005-05-18 | コナミ株式会社 | Image display program, image display method, and video game apparatus |
| TW534436U (en) * | 2001-12-05 | 2003-05-21 | Carry Computer Eng Co Ltd | Portable optical disc displaying/recording machine |
| US7350081B1 (en) | 2002-04-29 | 2008-03-25 | Best Robert M | Secure execution of downloaded software |
| US6980209B1 (en) * | 2002-06-14 | 2005-12-27 | Nvidia Corporation | Method and system for scalable, dataflow-based, programmable processing of graphics data |
| US6825843B2 (en) * | 2002-07-18 | 2004-11-30 | Nvidia Corporation | Method and apparatus for loop and branch instructions in a programmable graphics pipeline |
| GB0301448D0 (en) * | 2003-01-22 | 2003-02-19 | Falanx Microsystems As | Microprocessor systems |
| KR101018320B1 (en) | 2003-02-11 | 2011-03-04 | 엔디에스 리미티드 | Apparatus and method for processing interactive applications in a broadcast network |
| KR100703357B1 (en) * | 2003-08-16 | 2007-04-03 | 삼성전자주식회사 | Apparatus and method for implementing a cache memory of a portable terminal having an auxiliary control unit |
| US7091979B1 (en) * | 2003-08-29 | 2006-08-15 | Nvidia Corporation | Pixel load instruction for a programmable graphics processor |
| FR2865291A1 (en) * | 2004-01-21 | 2005-07-22 | Thomson Licensing Sa | METHOD OF TRANSFERRING DATA IN A MULTIPROCESSOR SYSTEM, MULTIPROCESSOR SYSTEM AND PROCESSOR EMPLOYING SAID METHOD |
| JP4376650B2 (en) | 2004-02-09 | 2009-12-02 | 任天堂株式会社 | GAME DEVICE AND GAME PROGRAM |
| US20050174337A1 (en) * | 2004-02-11 | 2005-08-11 | Nielsen Paul S. | Electronic handheld drawing and gaming system using television monitor |
| US20050275760A1 (en) * | 2004-03-02 | 2005-12-15 | Nvidia Corporation | Modifying a rasterized surface, such as by trimming |
| US7439980B2 (en) * | 2004-03-08 | 2008-10-21 | Yamaha Corporation | Image processing method and apparatus |
| US7771280B2 (en) * | 2004-03-31 | 2010-08-10 | Nintendo Co., Ltd. | Game console connector and emulator for the game console |
| US11278793B2 (en) | 2004-03-31 | 2022-03-22 | Nintendo Co., Ltd. | Game console |
| US8016681B2 (en) * | 2004-03-31 | 2011-09-13 | Nintendo Co., Ltd. | Memory card for a game console |
| US7837558B2 (en) * | 2004-03-31 | 2010-11-23 | Nintendo Co., Ltd. | Game console and emulator for the game console |
| US8267780B2 (en) * | 2004-03-31 | 2012-09-18 | Nintendo Co., Ltd. | Game console and memory card |
| US7554538B2 (en) * | 2004-04-02 | 2009-06-30 | Nvidia Corporation | Video processing, such as for hidden surface reduction or removal |
| CN101091175B (en) * | 2004-09-16 | 2012-03-14 | 辉达公司 | Load balancing |
| US7620530B2 (en) * | 2004-11-16 | 2009-11-17 | Nvidia Corporation | System with PPU/GPU architecture |
| US8145870B2 (en) * | 2004-12-07 | 2012-03-27 | International Business Machines Corporation | System, method and computer program product for application-level cache-mapping awareness and reallocation |
| GB0427973D0 (en) * | 2004-12-21 | 2005-01-26 | Falanx Microsystems As | Microprocessor systems |
| US7225295B2 (en) * | 2005-01-04 | 2007-05-29 | International Business Machines Corporation | External RAM module |
| US7307635B1 (en) | 2005-02-02 | 2007-12-11 | Neomagic Corp. | Display rotation using a small line buffer and optimized memory access |
| US8633927B2 (en) * | 2006-07-25 | 2014-01-21 | Nvidia Corporation | Re-render acceleration of frame with lighting change |
| GB2441365B (en) * | 2006-09-04 | 2009-10-07 | Nds Ltd | Displaying video data |
| US20090003379A1 (en) * | 2007-06-27 | 2009-01-01 | Samsung Electronics Co., Ltd. | System and method for wireless communication of uncompressed media data having media data packet synchronization |
| US8265169B2 (en) * | 2006-12-29 | 2012-09-11 | Intel Corporation | Video block memory read request translation and tagging |
| US7853745B2 (en) * | 2007-02-23 | 2010-12-14 | Sony Corporation | Electronic system with removable computing device and mutable functions |
| US7949998B2 (en) * | 2007-04-20 | 2011-05-24 | Microsoft Corporation | Programming framework for closed systems |
| US8330764B2 (en) * | 2007-04-20 | 2012-12-11 | Microsoft Corporation | Programming framework for closed systems |
| US8523666B2 (en) * | 2007-05-25 | 2013-09-03 | Microsoft Corporation | Programming framework for closed systems |
| US8276133B1 (en) * | 2007-12-11 | 2012-09-25 | Nvidia Corporation | System, method, and computer program product for determining a plurality of application settings utilizing a mathematical function |
| US8296781B1 (en) | 2007-12-11 | 2012-10-23 | Nvidia Corporation | System, method, and computer program product for determining application parameters based on hardware specifications |
| US8280864B1 (en) | 2007-12-17 | 2012-10-02 | Nvidia Corporation | System, method, and computer program product for retrieving presentation settings from a database |
| IL191755A0 (en) * | 2008-05-27 | 2009-05-04 | Sabra De Fence Technologies Lt | Intrusion detection system and its sensors |
| WO2010033506A2 (en) * | 2008-09-18 | 2010-03-25 | Wilton Industries, Inc. | Sifter apparatus |
| US20110202150A1 (en) * | 2009-10-16 | 2011-08-18 | Newport Controls | Controller system adapted for SPA |
| US8751100B2 (en) * | 2010-08-13 | 2014-06-10 | Deere & Company | Method for performing diagnostics or software maintenance for a vehicle |
| EP2609499B1 (en) | 2010-08-27 | 2018-02-21 | Millennium Enterprise Corporation | Electronics device |
| US9275377B2 (en) | 2012-06-15 | 2016-03-01 | Nvidia Corporation | System, method, and computer program product for determining a monotonic set of presets |
| US9092573B2 (en) | 2012-07-06 | 2015-07-28 | Nvidia Corporation | System, method, and computer program product for testing device parameters |
| US9250931B2 (en) | 2012-07-06 | 2016-02-02 | Nvidia Corporation | System, method, and computer program product for calculating settings for a device, utilizing one or more constraints |
| US9201670B2 (en) | 2012-07-06 | 2015-12-01 | Nvidia Corporation | System, method, and computer program product for determining whether parameter configurations meet predetermined criteria |
| US9286247B2 (en) | 2012-07-06 | 2016-03-15 | Nvidia Corporation | System, method, and computer program product for determining settings for a device by utilizing a directed acyclic graph containing a plurality of directed nodes each with an associated speed and image quality |
| US10509658B2 (en) | 2012-07-06 | 2019-12-17 | Nvidia Corporation | System, method, and computer program product for simultaneously determining settings for a plurality of parameter variations |
| US10668386B2 (en) | 2012-07-06 | 2020-06-02 | Nvidia Corporation | System, method, and computer program product for simultaneously determining settings for a plurality of parameter variations |
| US9264749B2 (en) * | 2012-12-13 | 2016-02-16 | Microsoft Technology Licensing, Llc | Server GPU assistance for mobile GPU applications |
| CN103297730B (en) * | 2013-06-14 | 2016-08-10 | 无锡华润矽科微电子有限公司 | On-chip study control method |
| GB2548604B (en) * | 2016-03-23 | 2018-03-21 | Advanced Risc Mach Ltd | Branch instruction |
| GB2548602B (en) | 2016-03-23 | 2019-10-23 | Advanced Risc Mach Ltd | Program loop control |
| GB2548603B (en) | 2016-03-23 | 2018-09-26 | Advanced Risc Mach Ltd | Program loop control |
| US11032345B2 (en) | 2018-05-10 | 2021-06-08 | Microsoft Technology Licensing, Llc | Client side data stream processing |
| US10924525B2 (en) | 2018-10-01 | 2021-02-16 | Microsoft Technology Licensing, Llc | Inducing higher input latency in multiplayer programs |
| US11055003B2 (en) | 2019-08-20 | 2021-07-06 | Micron Technology, Inc. | Supplemental AI processing in memory |
| CN110956573B (en) * | 2019-11-21 | 2023-06-13 | 中国航空工业集团公司西安航空计算技术研究所 | OpenGL graphic command pre-decoding method based on finite state machine |
| KR20210106221A (en) | 2020-02-20 | 2021-08-30 | 삼성전자주식회사 | System on chip, data processing method thereof and neural network device |
| US11711571B2 (en) * | 2020-03-06 | 2023-07-25 | Advanced Micro Devices, Inc. | Client-side offload of graphics effects processing |
| US11782624B2 (en) | 2020-10-06 | 2023-10-10 | Samsung Electronics Co., Ltd. | Worflow-based partition allocation |
| CN118803351A (en) * | 2023-04-14 | 2024-10-18 | 纬联电子科技(中山)有限公司 | Video transmission method and display |
Family Cites Families (85)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4127849A (en) | 1975-11-03 | 1978-11-28 | Okor Joseph K | System for converting coded data into display data |
| US4053740A (en) | 1975-12-22 | 1977-10-11 | Lawrence David Rosenthal | Video game system |
| US4179124A (en) | 1977-12-12 | 1979-12-18 | Jed Margolin | Electronic video game |
| US4471465A (en) * | 1979-01-08 | 1984-09-11 | Atari, Inc. | Video display system with multicolor graphics selection |
| US4296476A (en) | 1979-01-08 | 1981-10-20 | Atari, Inc. | Data processing system with programmable graphics generator |
| FR2469760A1 (en) * | 1979-11-09 | 1981-05-22 | Cii Honeywell Bull | METHOD AND SYSTEM FOR IDENTIFYING PEOPLE REQUESTING ACCESS TO CERTAIN MEDIA |
| US4442488A (en) * | 1980-05-05 | 1984-04-10 | Floating Point Systems, Inc. | Instruction cache memory system |
| FR2483657B1 (en) * | 1980-05-30 | 1986-11-21 | Bull Sa | PORTABLE MACHINE FOR CALCULATING OR PROCESSING INFORMATION |
| US4425559A (en) | 1980-06-02 | 1984-01-10 | Atari, Inc. | Method and apparatus for generating line segments and polygonal areas on a raster-type display |
| DE3025638C2 (en) * | 1980-07-07 | 1982-08-12 | Fa. Gottlieb Gühring, 7470 Ebingen | Rotary indexing table machine |
| FR2492135B1 (en) * | 1980-09-16 | 1988-01-22 | Cii Honeywell Bull | APPARATUS FOR DISTRIBUTING OBJECTS AND ACQUIRING SERVICES |
| US4388620A (en) | 1981-01-05 | 1983-06-14 | Atari, Inc. | Method and apparatus for generating elliptical images on a raster-type video display |
| US4492582A (en) * | 1981-01-06 | 1985-01-08 | Mattel, Inc. | Teaching and entertainment device |
| US4432067A (en) | 1981-05-07 | 1984-02-14 | Atari, Inc. | Memory cartridge for video game system |
| US4386773A (en) * | 1981-06-22 | 1983-06-07 | Bronstein John M | TV Game cartridge with expandable memory |
| US4462076A (en) * | 1982-06-04 | 1984-07-24 | Smith Engineering | Video game cartridge recognition and security system |
| US4597043A (en) * | 1982-06-16 | 1986-06-24 | Bally Manufacturing Corporation | High speed CPU/sequencer for video games |
| US4757468A (en) * | 1982-09-22 | 1988-07-12 | Intel Corporation | Authenticated read-only memory |
| GB2133257B (en) * | 1982-12-22 | 1987-07-29 | Ricoh Kk | T v game system |
| EP0114522A3 (en) * | 1982-12-27 | 1986-12-30 | Synertek Inc. | Rom protection device |
| CH653588A5 (en) * | 1983-06-07 | 1986-01-15 | Albe Sa | INTERMITTENTLY ROTATING PIECE-HOLDER TABLE IN MACHINE TOOLS. |
| JPS6052885A (en) | 1983-09-02 | 1985-03-26 | Hitachi Ltd | Toner removal device with pressure adjustment device |
| US4644495A (en) * | 1984-01-04 | 1987-02-17 | Activision, Inc. | Video memory system |
| US4725831A (en) | 1984-04-27 | 1988-02-16 | Xtar Corporation | High-speed video graphics system and method for generating solid polygons on a raster display |
| US4862156A (en) * | 1984-05-21 | 1989-08-29 | Atari Corporation | Video computer system including multiple graphics controllers and associated method |
| US4658247A (en) | 1984-07-30 | 1987-04-14 | Cornell Research Foundation, Inc. | Pipelined, line buffered real-time color graphics display system |
| NL8500526A (en) | 1985-02-25 | 1986-09-16 | Philips Nv | METHOD FOR ADDRESSING A MEMORY WITH A DELAY LINE WITH ANY ACCESSIBILITY AND SIGNAL PROCESSING DEVICE PROVIDED WITH SUCH A DELAY LINE. |
| CA1270339A (en) * | 1985-06-24 | 1990-06-12 | Katsuya Nakagawa | System for determining a truth of software in an information processing apparatus |
| JPH074449B2 (en) | 1985-10-04 | 1995-01-25 | 任天堂株式会社 | Cartridge for game machine and game machine using the same |
| JPS62192878A (en) | 1986-02-20 | 1987-08-24 | Nippon Gakki Seizo Kk | Painting-out method for polygon |
| US4862392A (en) | 1986-03-07 | 1989-08-29 | Star Technologies, Inc. | Geometry processor for graphics display system |
| JPS62221239A (en) | 1986-03-24 | 1987-09-29 | Fuji Electric Co Ltd | Serial transmission monitor device |
| JPS62231380A (en) | 1986-03-31 | 1987-10-09 | Namuko:Kk | Picture synthesizing device |
| US5504917A (en) | 1986-04-14 | 1996-04-02 | National Instruments Corporation | Method and apparatus for providing picture generation and control features in a graphical data flow environment |
| CA1284225C (en) * | 1986-07-23 | 1991-05-14 | Katsuya Nakagawa | Game software service system |
| JP2695773B2 (en) | 1986-09-25 | 1998-01-14 | 株式会社東芝 | Multi CPU control method |
| US4807158A (en) * | 1986-09-30 | 1989-02-21 | Daleco/Ivex Partners, Ltd. | Method and apparatus for sampling images to simulate movement within a multidimensional space |
| JPS63163577A (en) | 1986-12-25 | 1988-07-07 | Nec Corp | Graphic display device |
| US5251322A (en) * | 1987-08-13 | 1993-10-05 | Digital Equipment Corporation | Method of operating a computer graphics system including asynchronously traversing its nodes |
| US5170468A (en) | 1987-08-18 | 1992-12-08 | Hewlett-Packard Company | Graphics system with shadow ram update to the color map |
| EP0309884A3 (en) | 1987-09-28 | 1991-04-10 | Mitsubishi Denki Kabushiki Kaisha | Color image display apparatus |
| JPS6484295A (en) | 1987-09-28 | 1989-03-29 | Mitsubishi Electric Corp | Color display device |
| US4866637A (en) | 1987-10-30 | 1989-09-12 | International Business Machines Corporation | Pipelined lighting model processing system for a graphics workstation's shading function |
| CA1309198C (en) | 1987-12-10 | 1992-10-20 | Carlo J. Evangelisti | Parallel rendering of smoothly shaded color triangles with anti-aliased edges for a three dimensional color display |
| US5136664A (en) | 1988-02-23 | 1992-08-04 | Bersack Bret B | Pixel rendering |
| GB2215952A (en) | 1988-03-23 | 1989-09-27 | Benchmark Technologies | Performing raster operations on patch formatted pixel data using time domain multiplexing |
| GB2215948A (en) | 1988-03-23 | 1989-09-27 | Benchmark Technologies | Performing raster operations on patch formatted pivel data |
| JPH0215381A (en) | 1988-03-23 | 1990-01-19 | Du Pont Pixel Syst Ltd | Execution of raster operation, multiplexing of time area and image processing |
| US5016876A (en) * | 1988-10-14 | 1991-05-21 | Williams Electronics Games, Inc. | Video display co-processor for use in a video game |
| US5208904A (en) * | 1989-03-07 | 1993-05-04 | Brother Kogyo Kabushiki Kaisha | Data processing apparatus and method for preparing data representative of supplemental figure attached to basic figure reproduced on output medium |
| KR0149503B1 (en) * | 1989-04-20 | 1999-05-15 | 야마우찌 히로시 | Memory cartridge |
| US5112051A (en) * | 1989-06-05 | 1992-05-12 | Westinghouse Electric Corp. | Interfacing device for a computer games system |
| US5060172A (en) * | 1989-07-06 | 1991-10-22 | Digital Equipment Corporation | Method and apparatus for displaying smooth-shaded objects |
| JPH0632703B2 (en) | 1989-07-31 | 1994-05-02 | コナミ株式会社 | Game console display |
| US5214753A (en) | 1989-07-31 | 1993-05-25 | Shographics, Inc. | Video system with parallel attribute interpolations |
| JPH0394389A (en) | 1989-09-07 | 1991-04-19 | Hitachi Ltd | Method for displaying three-dimensional graphic rotation and graphic processor |
| US4922336A (en) * | 1989-09-11 | 1990-05-01 | Eastman Kodak Company | Three dimensional display system |
| US5004232A (en) * | 1989-10-13 | 1991-04-02 | Macronix, Inc. | Computer game cartridge security circuit |
| US5214758A (en) * | 1989-11-14 | 1993-05-25 | Sony Corporation | Animation producing apparatus |
| JP2502754Y2 (en) * | 1989-12-07 | 1996-06-26 | 株式会社エス・エヌ・ケイ | TV game machine |
| JP3047185B2 (en) | 1990-01-26 | 2000-05-29 | 任天堂株式会社 | Digital sound source device and external memory cartridge used therein |
| WO1991011799A1 (en) | 1990-02-05 | 1991-08-08 | Ricoh Co., Ltd. | Animation display unit and external memory used therefor |
| JPH0425962A (en) | 1990-05-21 | 1992-01-29 | Nec Corp | Control system by multi-central processing unit |
| KR950014979B1 (en) * | 1990-06-04 | 1995-12-20 | 유니버시티 오브 워싱톤 | Image counting system |
| US5276798A (en) * | 1990-09-14 | 1994-01-04 | Hughes Aircraft Company | Multifunction high performance graphics rendering processor |
| CA2050658C (en) * | 1990-09-14 | 1997-01-28 | John M. Peaslee | Dual hardware channels and hardware context switching in a graphics rendering processor |
| JP2725915B2 (en) | 1990-11-15 | 1998-03-11 | インターナショナル・ビジネス・マシーンズ・コーポレイション | Triangle drawing apparatus and method |
| GB9027678D0 (en) * | 1990-12-20 | 1991-02-13 | Ncr Co | Videographics display system |
| US5774133A (en) | 1991-01-09 | 1998-06-30 | 3Dlabs Ltd. | Computer system with improved pixel processing capabilities |
| US5415549A (en) * | 1991-03-21 | 1995-05-16 | Atari Games Corporation | Method for coloring a polygon on a video display |
| US5251909A (en) | 1991-05-28 | 1993-10-12 | Reed Michael J | Secured high throughput data channel for public broadcast system |
| KR100319768B1 (en) * | 1991-08-13 | 2002-04-22 | 마거리트 와그너-달 | Multi-Dimensional Address Generation in Imaging and Graphics Processing Systems |
| US5190285A (en) * | 1991-09-30 | 1993-03-02 | At&T Bell Laboratories | Electronic game having intelligent game pieces |
| US5289575A (en) * | 1991-11-22 | 1994-02-22 | Nellcor Incorporated | Graphics coprocessor board with hardware scrolling window |
| US5592595A (en) * | 1991-12-30 | 1997-01-07 | Seiko Epson Corporation | Intelligent cartridge for attachment to a printer to perform image processing tasks in a combination image processing system and method of image processing |
| US5388841A (en) * | 1992-01-30 | 1995-02-14 | A/N Inc. | External memory system having programmable graphics processor for use in a video game system or the like |
| US5357604A (en) * | 1992-01-30 | 1994-10-18 | A/N, Inc. | Graphics processor with enhanced memory control circuitry for use in a video game system or the like |
| CA2074388C (en) | 1992-01-30 | 2003-01-14 | Jeremy E. San | Programmable graphics processor having pixel to character conversion hardware for use in a video game system or the like |
| TW214588B (en) | 1992-01-30 | 1993-10-11 | An Inc | |
| JP3222197B2 (en) | 1992-05-18 | 2001-10-22 | 理想科学工業株式会社 | Card printing method, card printing document positioning holder, and card printing paper |
| DE4235091C2 (en) * | 1992-10-17 | 2001-09-06 | Trumpf Sachsen Gmbh | Liquid and abrasive supply for a fluid jet cutting system |
| DE4301393C2 (en) * | 1993-01-20 | 1996-05-23 | Witzig & Frank Turmatic Gmbh | Rotary cycle machine tool |
| JP3510387B2 (en) * | 1995-06-30 | 2004-03-29 | ライオン株式会社 | Process for producing granulated bleach activator, process for producing bleach or detergent containing granulated bleach activator |
| DE19529071C2 (en) * | 1995-08-08 | 1998-04-30 | Holger Wuerthner | Device for front and back machining of workpieces |
| DE19533320C2 (en) * | 1995-09-08 | 1999-01-28 | Ottobeurer Facondreherei Alois | Rotary transfer machine |
-
1992
- 1992-01-30 US US07/827,098 patent/US5388841A/en not_active Expired - Lifetime
- 1992-06-20 TW TW081104861A patent/TW226448B/zh active
- 1992-07-23 CA CA002074554A patent/CA2074554C/en not_active Expired - Lifetime
- 1992-07-28 AU AU20603/92A patent/AU657147B2/en not_active Ceased
- 1992-08-05 DE DE69232865T patent/DE69232865T2/en not_active Expired - Fee Related
- 1992-08-05 EP EP02076147A patent/EP1262921A3/en not_active Withdrawn
- 1992-08-05 AT AT92307135T patent/ATE229197T1/en not_active IP Right Cessation
- 1992-08-05 EP EP92307135A patent/EP0553532B1/en not_active Expired - Lifetime
- 1992-10-10 KR KR1019920018673A patent/KR100280939B1/en not_active Expired - Fee Related
- 1992-10-31 CN CN92112795A patent/CN1048564C/en not_active Expired - Fee Related
-
1993
- 1993-01-29 JP JP01354093A patent/JP3335695B2/en not_active Expired - Fee Related
-
1995
- 1995-02-07 US US08/385,160 patent/US5850230A/en not_active Expired - Lifetime
-
2000
- 2000-11-30 US US09/725,561 patent/US6646653B2/en not_active Expired - Fee Related
-
2001
- 2001-02-22 US US09/789,574 patent/US6895470B2/en not_active Expired - Fee Related
- 2001-05-15 US US09/855,641 patent/US7432932B2/en not_active Expired - Fee Related
-
2002
- 2002-06-04 JP JP2002163283A patent/JP2003126550A/en active Pending
-
2004
- 2004-02-20 US US10/781,864 patent/US7229355B2/en not_active Expired - Fee Related
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6646653B2 (en) | 1992-01-30 | 2003-11-11 | A/N Inc. | Programmable graphics processor for use in a video game system or the like |
| US7229355B2 (en) | 1992-01-30 | 2007-06-12 | Nintendo Co., Ltd. | External memory system having programmable graphics processor for use in a video game system of the like |
| US7432932B2 (en) | 1992-01-30 | 2008-10-07 | Nintendo Co., Ltd. | External memory system having programmable graphics processor for use in a video game system or the like |
| CN114422801A (en) * | 2021-12-31 | 2022-04-29 | 山东云海国创云计算装备产业创新中心有限公司 | Method, system, device and storage medium for optimizing video compression control logic |
| CN114422801B (en) * | 2021-12-31 | 2024-04-26 | 山东云海国创云计算装备产业创新中心有限公司 | Method, system, device and storage medium for optimizing video compression control logic |
Also Published As
| Publication number | Publication date |
|---|---|
| DE69232865D1 (en) | 2003-01-16 |
| DE69232865T2 (en) | 2003-11-20 |
| EP1262921A2 (en) | 2002-12-04 |
| US7229355B2 (en) | 2007-06-12 |
| US6646653B2 (en) | 2003-11-11 |
| EP1262921A3 (en) | 2004-03-24 |
| US20010040577A1 (en) | 2001-11-15 |
| CA2074554A1 (en) | 1993-07-31 |
| KR100280939B1 (en) | 2001-02-01 |
| EP0553532A2 (en) | 1993-08-04 |
| JP3335695B2 (en) | 2002-10-21 |
| JPH0689567A (en) | 1994-03-29 |
| AU657147B2 (en) | 1995-03-02 |
| AU2060392A (en) | 1993-08-19 |
| US7432932B2 (en) | 2008-10-07 |
| US20040166943A1 (en) | 2004-08-26 |
| EP0553532B1 (en) | 2002-12-04 |
| US5388841A (en) | 1995-02-14 |
| US20020050999A1 (en) | 2002-05-02 |
| KR930016902A (en) | 1993-08-30 |
| CA2074554C (en) | 2002-09-10 |
| US20010043224A1 (en) | 2001-11-22 |
| US6895470B2 (en) | 2005-05-17 |
| EP0553532A3 (en) | 1994-03-09 |
| JP2003126550A (en) | 2003-05-07 |
| CN1048564C (en) | 2000-01-19 |
| US5850230A (en) | 1998-12-15 |
| ATE229197T1 (en) | 2002-12-15 |
| TW226448B (en) | 1994-07-11 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN1048564C (en) | External memory system having programmable graphics processor for use in a video game system or the like | |
| CN1080200A (en) | graphics processor | |
| CN1103961C (en) | Coprocessor data access control | |
| CN1297939C (en) | Image processing device and image processing method | |
| CN1156171C (en) | Image and sound processing device with improved processing efficiency | |
| CN1993709A (en) | Signal processor | |
| CN1111464A (en) | Image processing device, method thereof, and electronic device with image processing device | |
| CN1293518C (en) | Triangle drawing method and device with cutting and supporting frame mode | |
| CN1728685A (en) | Method and system for facilitating data transfer in a pageable mode virtual environment | |
| CN1584824A (en) | A Architecture of Microprocessor Based on CISC Structure and Its Instruction Realization | |
| CN1702634A (en) | Facilitating management of storage of a pageable mode virtual environment absent intervention of a host of the environment | |
| CN101034381A (en) | Multi-master system and data transfer system | |
| CN1232215A (en) | Network-access management system and method, and computer program product | |
| CN1107983A (en) | System and method for processing datums | |
| CN1894659A (en) | Data processing apparatus and method for moving data between registers and memory | |
| CN1170171A (en) | High performance low cost video game system with coprocessor providing high speed efficient 3D graphics and digital audio signal processing | |
| CN1829981A (en) | Video information device and module unit | |
| CN1150674A (en) | Method for generating image data, image data processing device, and recording medium | |
| CN1140857A (en) | Information processing device equipped with a coprocessor that efficiently utilizes register data in a main processor | |
| CN1433541A (en) | Displaying graphical objects | |
| CN1723448A (en) | Secure memory for protecting against malicious programs | |
| CN1501259A (en) | Apparatus and method for facilitating memory data access with universal read/write mode | |
| CN1282071C (en) | Data processor, data processing method and program thereof | |
| CN1231740A (en) | Register addressing in a data processing apparatus | |
| CN1506971A (en) | Semiconductor device, image data processing apparatus and method |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| C06 | Publication | ||
| PB01 | Publication | ||
| C10 | Entry into substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| C14 | Grant of patent or utility model | ||
| GR01 | Patent grant | ||
| C15 | Extension of patent right duration from 15 to 20 years for appl. with date before 31.12.1992 and still valid on 11.12.2001 (patent law change 1993) | ||
| OR01 | Other related matters | ||
| C19 | Lapse of patent right due to non-payment of the annual fee | ||
| CF01 | Termination of patent right due to non-payment of annual fee |