Information exchange system6625597Abstract A design information communication system having a design dictionary, design directory, and design data blocks is disclosed. The system may be used for communicating design attributes and values for various devices under design. The dictionary defines various attributes of the device. The directory identifies, or lists the required attributes to design the device. The data block provides values for the identified attributes. A plurality of dictionaries may be grouped as a dictionary repository. The dictionary repository may be contained by a server connected to a network such as the Internet. Claims What is claimed is: Description BACKGROUND
[DICTIONARY ID: NAME OR NUMBER IDENTIFICATION]
[Property 1 : Attribute 1 : Definition of Property 1 Attribute 1]
[Property 1 : Attribute 2 : Definition of Property 1 Attribute 2]
. . .
[Property 2 : Attribute 1 : Definition of Property 2 Attribute 1]
[Property 2 : Attribute 2 : Definition of Property 2 Attribute 2]
. . .
[Property i : Attribute j : Definition of Property i Attribute j]
. . .
[Property M : Attribute N : Definition of Property M Attribute N]
The following is a sample dictionary based on the sample dictionary format:
[DICTIONARY ID: CPU DICTIONARY 001 FTP.ACME.COM/DICT/CPU001.DIC
UPDATED 06/01/2000]
[Physical prop. : X-axis size : size in micrometers, lower left
corner = 0]
[Physical prop. : Y-axis size : size in micrometers, lower left
corner = 0]
[Electrical property : Vdd : power supply voltage]
[Electrical property : CLK : clock frequency in MHz]
As indicated by the sample dictionary, a dictionary may include a dictionary id, identifying it from other dictionaries. The listed attributes may be grouped into properties or other sets. In the sample dictionary, attributes Vdd and CLK are grouped as Electrical Property. FIG. 2 illustrates a dictionary repository contained in the storage 104. In the illustration, for example, the storage 104 includes three dictionaries 120 (CPU Dictionary), 122 (Memory Dictionary), and 124 (Input/Output(I/O) Dictionary). Although it would be most useful to maintain the dictionaries in a repository, each dictionary is preferably a standalone file usable by itself The dictionary repository may hold a plurality of such dictionaries. As illustrated, the dictionary id may include a uniform resource allocator (URL) address. If the network 110 is the Internet, then each of the dictionaries of the repository 104 may be assigned a URL address to facilitate access by vendors (represented by design vendor 108 in FIG. 1). The present invention is not limited to the exact format of the sample dictionary and the sample dictionary format. In practice, a dictionary may include definitions for hundreds or thousands of attributes. Moreover, the dictionary will likely be much larger and more complex than the sample dictionary. The sample dictionary and the sample dictionary format are provided solely for the purposes of aiding the present disclosure. Another sample dictionary is disclosed as Appendix 1. Referring again to FIG. 1, a system integrator 106 defines one or more directories, each of which identifies and lists attributes for a particular design block. The integrator 106 may also be connected to the server 102 via the network 110. Relative to the server 102, the integrator 106 may operate as a client to the server 102 over the network 110. Each of the directories identifies the dictionary in which the listed attributes are defined. The following is a sample directory format:
[DIRECTORY ID: NAME OR NUMBER IDENTIFICATION]
[DICTIONARY ID: ID OF THE DICTIONARY DEFINING ATTRIBUTES LISTED IN
THIS DIRECTORY]
[Property 1 : Attribute 1]
[Property 1 : Attribute 2]
. . .
[Property 2 : Attribute 1]
[Property 2 : Attribute 2]
. . .
[Property i : Attribute j]
. . .
[Property M : Attribute N]
The following is a sample directory based on the sample directory format:
[DIRECTORY ID: CPU DESIGN XYZ]
[DICTIONARY ID: CPU DICTIONARY 001 FTP.ACME.COM/DICT/CPU001.DIC
UPDATED 06/01/2000]
[Physical prop. : X-axis size]
[Physical prop. : Y-axis size]
[Electrical property : Vdd]
[Electrical property : CLK]
As indicated by the sample directory, a directory may include a directory id which may also serve as the design block id. The attributes may be grouped into properties or other sets. In the sample, directory CPU DESIGN XYZ identifies four attributes--X-axis size, Y-axis size, Vdd, and CLK--for its design block. Typically, the integrator 106 would define a directory for each of design blocks. Then, the integrator 106 requests values for each of the identified design blocks from design vendors. This operation is illustrated as arrow 112. The request may be performed by sending a design directory, for example directory 113, to a design vendor 108. The directory lists the attributes of the design. As indicated by line 115, the directory 113 preferably identifies or points to a dictionary 117 in which the listed attributes are defined. Preferably, only the directory 113 needs to be sent. However, if the integrator 106 knows that the vendor 108 requires a copy of the dictionary (identified by the directory being sent), or if there has been a recent update to the dictionary, then the request 112 may include the dictionary 117 as well as the directory 113. Then the request file may be a concatenated directory and dictionary, for example:
[DIRECTORY ID: CPU DESIGN XYZ]
[DICTIONARY ID: CPU DICTIONARY 001 FTP.ACME.COM/DICT/CPU001.DIC
UPDATED 06/01/2000]
[Physical prop. : X-axis size]
[Physical prop. : Y-axis size]
[Electrical property : Vdd]
[Electrical property : CLK]
[DICTIONARY ID: CPU DICTIONARY 001 FTP.ACME.COM/DICT/CPU001.DIC
UPDATED 06/01/2000]
[Physical prop. : X-axis size : size in micrometers, lower left
corner = 0]
[Physical prop. : Y-axis size : size in micrometers, lower left
corner = 0]
[Electrical property : Vdd : power supply voltage]
[Electrical property : CLK : clock frequency in MHz]
In general, when only the directory is sent to a vendor, the vendor may obtain the dictionary (identified by the directory) from the dictionary server 102. For instance, using the dictionary id FTP.ACME.COM/DICT/CPU001.DIC from the sample directory, the vendor 108 may use the World Wide Web and the File Transfer Protocol (FTP) to retrieve the dictionary CPU001.DIC. The vendor 108 may retrieve the dictionary by making a request for the dictionary from the server 102 identified by the dictionary id. Operation 116. The server 102 then sends the requested dictionary to the vendor. Operation 118. The dictionary may be used by the vendor 106 to ensure that the integrator 106 and the vendor 108 are using same definitions for the design attributes identified by the directory. Here, the vendor 108 may function as another client in relation to the server 102. In practice, the server 102 may be maintained by the integrator 106. In fact, they may reside in a single physical machine. However, the server 102 and the integrator 106 are illustrated separately in FIG. 1 to demonstrate the functional distinction between the server 102 and the integrator 106. The present invention is not limited to the exact format of the sample directory and the sample directory format. In practice, a directory may include hundreds or thousands of attributes. Moreover, the directory will likely be much larger and more complex than the sample directory. The sample directory and the sample directory format are provided solely for the purposes of aiding the present disclosure. Another sample directory is disclosed as Appendix 2. The vendor 108 responds 114 to the request 112 by formulating and sending a data block 119 for the directory. The following is a sample data block format:
[DATA BLOCK ID: NAME OR NUMBER IDENTIFICATION]
[DIRECTORY ID: ID OF THE DIRECTORY FOR TO THIS DATA BLOCK BELONGS]
[Property 1 : Attribute 1 : value of property 1 attribute 1]
[Property 1 : Attribute 2 : value of property 1 attribute 2]
. . .
[Property 2 : Attribute 1 : value of property 2 attribute 1]
[Property 2 : Attribute 2 : value of property 2 attribute 2]
. . .
[Property i : Attribute j : value of property i attribute j]
. . .
[Property M : Attribute N : value of property M attribute N]
The following is a sample data block based on the sample data block format:
[DATA BLOCK ID: DATA BLOCK 001]
[DIRECTORY ID: CPU DESIGN XYZ]
[Physical prop. : X-axis size : 4000]
[Physical prop. : Y-axis size : 3000]
[Electrical property : Vdd : 2.6]
[Electrical property : CLK : 100]
As indicated by the sample data block, a data block preferably includes actual values for the design specified by its corresponding directory. The vendor 108 replies 114 to the integrator by sending 114 the data blocks prepared in response to the request 112. Multiple data blocks may be prepared by the vendor 108 and sent to the integrator 106. Preferably, only the data blocks are sent to the integrator 106. However, the corresponding directory may also be sent as a confirmation. Then, the reply may appear as follows:
[DIRECTORY ID: CPU DESIGN XYZ]
[DICTIONARY ID: CPU DICTIONARY 001 FTP.ACME.COM/DICT/CPU001.DIC
UPDATED 06/01/2000]
[Physical prop. : X-axis size]
[Physical prop. : Y-axis size]
[Electrical property : Vdd]
[Electrical property : CLK]
[DATA BLOCK ID: DATA BLOCK 001]
[DIRECTORY ID: CPU DESIGN XYZ]
[Physical prop. : X-axis size : 4000]
[Physical prop. : Y-axis size : 3000]
[Electrical property : Vdd : 2.6]
[Electrical property : CLK : 100]
[DATA BLOCK ID: DATA BLOCK 002]
[DIRECTORY ID: CPU DESIGN XYZ]
[Physical prop. : X-axis size : 4500]
[Physical prop. : Y-axis size : 2500]
[Electrical property : Vdd : 2.6]
[Electrical property : CLK : 100]
The sample reply includes the directory and two design data blocks 001 and 002. The two design blocks provide two alternative designs from which the integrator 106 may select in its effort to design the device under development. This may be useful because a range of data blocks may be considered by the integrator, the design blocks having slightly different values for the attributes of the directory. Using the structures of the present invention, it would be a simple matter to take a "snapshot" of any design block at any state of development by merely saving its directory, dictionary, and data block. For example, the following information may be saved to take a snapshot of a design block:
[DIRECTORY ID: CPU DESIGN XYZ]
[DICTIONARY ID: CPU DICTIONARY 001 FTP.ACME.COM/DICT/CPU001.DIC
UPDATED 06/01/2000]
[Attribute List . . .]
[DICTIONARY ID : CPU DICTIONARY 001 FTP.ACME.COM/DICT/CPU001.DIC
UPDATED 06/01/2000]
[Attributes and Definitions]
[DATA BLOCK ID: DATA BLOCK 001]
[DIRECTORY ID: CPU DESIGN XYZ]
[Values for the Attributes . . .]
Such data snapshots may be suitable for archival, tracking, searching the design data. Further, incremental development of various design blocks becomes easier. This is because incremental designs would be reflected by new directories which may include only incremental changes to the previous versions. For these directories, the data blocks from prior directories may be copied and updated instead of new data blocks being generated. The present invention is not limited to the exact format of the sample design blocks and the sample design block format. In practice, a design block may include values for hundreds or thousands of attributes. Moreover, the design blocks will likely be much larger and more complex than the sample design blocks. The sample design blocks and the sample design block format are provided solely for the purposes of aiding the present disclosure. Another sample design block is disclosed as Appendix 3. From the foregoing it will be appreciated that the design communication system of the present invention allows for efficient communication of design specifications and exchange of data between system integrator and design vendors. Although specific embodiments of the present invention have been described and illustrated, the invention is not to be limited to the specific forms or arrangements of parts so described and illustrated. The invention is limited only by the claims. APPENDIX 1 IP_DICT Identification < Supplier < < SName: The supplier who will deliver the part > > Originator < < oname: Name of the design or part orignator > > Class < < CName: Catagory of the component > < Function: Function the part performs > > vcname < < name: Name of the Component > > Revision < < Revision: Revision number of the design/component > > Version < < Version: Design Version > > Part Number < < Pnumber: company specific Design block/part number > > duns number < < dnumber: Duns number if none use 00001 > > Exchange Number < < exnumber: The number of time the same information is sent > > > Taxonomy < Type < < Type: Type of SIP, ASSP, Component, embedded > > Class < < Class: Class it belongs too, CPU, DSP, I/O etc. > > Function < < Function: It's function e.g data conversion, level shifter etc. > > Application < < Application: Where it can be applied e.g > > Use < < use: Where it has been used > > > General < Source < < Dictionary: Name of the dictionary used > < Version: Version number > < Address: Dictionary Address > < Type: embedded or stand-alone > > Location < < Loc: Address of the company, Name, Street, Zip, Country > > Supplier ID < < Supplier ID: Company specific ID nagociated > > Date < < Date: Date of orignation or update of information as yyyymmdd > > > Technical < Release Dates < < Engineering sample (yyyy-mm-dd): date of engineering sample available > < Customer sample (yyyy-mm-dd): date of customer sample available > < Manufacturing release (yyyy-mm-dd): date of manufacturing release > < End of life (yyyy-mm-dd): end of life date > > Module technology < < module type: SIMM, DIMM, SO-DIMM, RIMM, SO-RIMM, DDR DIMM > < total size (MB): enter value in MB > < speed: enter as PC133-333-520 or PC1600,PC2100 or PC600,PC700,PC800 > < based DRAM density (Mb): enter DRAM density in Mb > < based DRAM die rev: enter DRAM die Revision > < ECC or Non-ECC: enter ECC or non-ECC > < Unbuffered/Registered: enter module type as REG or UNB > < Single/Double sided: enter module type as SS or DS > < PCB version: The version of the PCB > < Assembly location: Location of Assembly operation > < Number of pins: number of pins in the module > < comments field: comments > > > Internal qualification data < ID Numbers < < DRAM or module: module or component > < DRAM or module part number: p/n > < MTC ID: MTC qualification ID > < MTC Qual Status: MTC to enter the status QUALIFIED/COND QUAL/DISQUALIFIED/PENDING > > DRAM/module < < AC characteristics table: attach file with AC test data > > Reliability < < High Temperature Operating Life (HTOL): hr > < Low Temperature Operating Life (LTOL): hr > < ESD: all pins, volts > < Vdd overvoltage latch up: all pins, V > < Dielectric Integrity Test Done: V > > Thermal < < Thermal Impedance: Thermal Impedence > > > APPENDIX 2 IP_DIR Identification < Supplier < SName > Originator < oname > Class < CName: Function > vcname < name > Revision < Revision > Version < Version > Part Number < Pnumber > duns number < dnumber > Exchange Number < exnumber > > Taxonomy < Application < Application > Class < Class > Type < Type > Function < Function > Use < use > > General < Source < Dictionary: Version: Address: Type > Location < Loc > Supplier ID < Supplier ID > Date < Date > > Technical < Release Dates < Engineering sample (yyyy-mm-dd): Manufacturing release (yyyy-mm-dd): Customer sample (yyyy-mm-dd): End of life (yyyy-mm-dd) > Module technology < module type: total size (MB): speed: based DRAM density (Mb): based DRAM die rev: ECC or Non-ECC: Unbuffered/Registered: Single/Double sided: PCB version: Assembly location: Number of pins: comments field > > Internal qualification data < DRAM/module < AC characteristics table > Reliability < High Temperature Operating Life (HTOL): Low Temperature Operating Life (LTOL): ESD: Vdd overvoltage latch up: Dielectric Integrity Test Done > Thermal < Thermal Impedance > > APPENDIX 3 IP_DATA Identification < Class < < CName: DRAM > < Function: Memory > > Originator < < OName: Supplier contact > > Supplier < < SName: Supplier > > VCName < < Name: A value for Name > > Version < < Version: A value for Version > > Revision < < Revision: A value for Revision > > DUNS Number < < DNumber: 00001 > > Part Number < < PNumber: A value for PNumber > > Exchange Number < < ExNumber: A value for ExNumber > > > Taxonomy < Type < < Type: Module > > Class < < Class: Memory > > Application < < Application: Computer Products > > Function < < Function: Memory > > Use < < use: Memory > > > General < Source < < Dictionary: HP_DRAM > < Version: 1 > < Address: None > < Type: Embedded > > Supplier ID < < Supplier ID: dummy ID > > Location < < Loc: dummy location > > Date < < Date: dummy date > > > Technical < Module technology < < module type: dummy value > < total size (MB): dummy value > < speed: dummy value > < based DRAM density (Mb): dummy value > < based DRAM die rev: dummy value > < ECC or Non-ECC: dummy value > < Unbuffered/Registered: dummy value > < Single/Double sided: dummy value > < PCB version: dummy value > < Assembly location: dummy value > < Number of pins: dummy value > > Release Dates < < Customer sample (yyyy-mm-dd): dummy value > < End of life (yyyy-mm-dd): dummy value > < Engineering sample (yyyy-mm-dd): dummy value > < Manufacturing release (yyyy-mm-dd): dummy value > > > END_IP_BLOCK
|
Same subclass Same class Consider this |
||||||||||
