US9723431B2 - Close proximity transport configuration - Google Patents
Close proximity transport configuration Download PDFInfo
- Publication number
- US9723431B2 US9723431B2 US14/576,170 US201414576170A US9723431B2 US 9723431 B2 US9723431 B2 US 9723431B2 US 201414576170 A US201414576170 A US 201414576170A US 9723431 B2 US9723431 B2 US 9723431B2
- Authority
- US
- United States
- Prior art keywords
- protocol
- close proximity
- data
- wireless connection
- negotiation
- 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.)
- Active
Links
- 238000004891 communication Methods 0.000 claims abstract description 124
- 230000002093 peripheral effect Effects 0.000 claims description 13
- 230000011664 signaling Effects 0.000 claims description 5
- 238000000034 method Methods 0.000 description 19
- 230000005540 biological transmission Effects 0.000 description 16
- 238000013461 design Methods 0.000 description 15
- 238000005516 engineering process Methods 0.000 description 15
- 238000003860 storage Methods 0.000 description 14
- 230000008901 benefit Effects 0.000 description 8
- 239000004744 fabric Substances 0.000 description 8
- 238000004519 manufacturing process Methods 0.000 description 8
- 230000003287 optical effect Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 230000006978 adaptation Effects 0.000 description 6
- 230000000977 initiatory effect Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000012549 training Methods 0.000 description 5
- 230000004044 response Effects 0.000 description 4
- 238000011144 upstream manufacturing Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 241000699670 Mus sp. Species 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 239000003795 chemical substances by application Substances 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000004134 energy conservation Methods 0.000 description 2
- 238000007667 floating Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- APTZNLHMIGJTEW-UHFFFAOYSA-N pyraflufen-ethyl Chemical compound C1=C(Cl)C(OCC(=O)OCC)=CC(C=2C(=C(OC(F)F)N(C)N=2)Cl)=C1F APTZNLHMIGJTEW-UHFFFAOYSA-N 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- LHMQDVIHBXWNII-UHFFFAOYSA-N 3-amino-4-methoxy-n-phenylbenzamide Chemical compound C1=C(N)C(OC)=CC=C1C(=O)NC1=CC=CC=C1 LHMQDVIHBXWNII-UHFFFAOYSA-N 0.000 description 1
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 241000699666 Mus <mouse, genus> Species 0.000 description 1
- 108700025151 PD protocol Proteins 0.000 description 1
- 239000000872 buffer Substances 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 210000004027 cell Anatomy 0.000 description 1
- 230000003750 conditioning effect Effects 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000006880 cross-coupling reaction Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 210000000352 storage cell Anatomy 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04B—TRANSMISSION
- H04B5/00—Near-field transmission systems, e.g. inductive or capacitive transmission systems
- H04B5/70—Near-field transmission systems, e.g. inductive or capacitive transmission systems specially adapted for specific purposes
- H04B5/72—Near-field transmission systems, e.g. inductive or capacitive transmission systems specially adapted for specific purposes for local intradevice communication
-
- H04W4/008—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/80—Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/24—Negotiation of communication capabilities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/18—Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
Definitions
- the present disclosure relates in general to the field of computer communications, and more specifically, to close proximity wireless communications.
- Computing devices are becoming increasingly smaller in form factor. This coupled with increases in battery life and wireless communications networking have permitted the rapid advancement of computing devices configured for mobility. Such mobile computing devices are increasingly replacing larger, heavier, and more cumbersome desktop computing devices.
- NFC Near Field Communication
- the communication protocol and operation is an extension of the ISO 14443 proximity-card standard (contactless card, radio frequency ID (RFID)) and is specified in the ECMA-340 and ISO/IEC 18092 technology standards.
- RFID radio frequency ID
- NFC is used in some devices to combine the interface of a smartcard and a reader into a single device.
- An NFC device may communicate with both existing ISO 14443 smartcards and readers, as well as with other NFC devices, and is thereby compatible with existing contactiess communication infrastructure.
- NFC has been used, among other applications, to assist in facilitating electronic payment utilizing smartphones, smart cards, and other electronic devices.
- FIG. 1 illustrates a simplified block diagram of a system including a serial point-to-point interconnect to connect I/O devices in a computer system in accordance with one embodiment
- FIG. 2 illustrates a simplified block diagram of a layered protocol stack in accordance with one embodiment
- FIG. 3 illustrates an embodiment of a serial point-to-point link connecting two ports.
- FIG. 4 illustrates an example computing device utilizing close proximity wireless communications technology.
- FIG. 5 illustrates a representation of two computing devices utilizing close proximity wireless communications solution.
- FIG. 6 illustrates a flowchart illustrating configuration of a close proximity wireless communication channel.
- FIG. 7 illustrates an embodiment of a block diagram for a computing system.
- FIG. 8 illustrates another embodiment of a block diagram for a computing system including a system on chip.
- the disclosed embodiments are not limited to server computer system, desktop computer systems, laptops, UltrabooksTM, but may be also used in other devices, such as handheld devices, smartphones, tablets, other thin notebooks, systems on a chip (SOC) devices, and embedded applications.
- handheld devices include cellular phones, Internet protocol devices, digital cameras, personal digital assistants (PDAs), and handheld PCs.
- Embedded applications typically include a microcontroller, a digital signal processor (DSP), a system on a chip, network computers (NetPC), set-top boxes, network hubs, wide area network (WAN) switches, or any other system that can perform the functions and operations taught below.
- DSP digital signal processor
- NetPC network computers
- Set-top boxes network hubs
- WAN wide area network
- the apparatus', methods, and systems described herein are not limited to physical computing devices, but may also relate to software optimizations for energy conservation and efficiency. As may become readily apparent in the description below, the embodiments of methods, apparatus', and systems described herein (whether in reference to hardware, firmware, software, or a combination thereof) may be considered vital to a “green technology” future balanced with performance considerations.
- interconnect architecture to couple and communicate between the components has also increased in complexity to ensure bandwidth demand is met for optimal component operation.
- different market segments demand different aspects of interconnect architectures to suit the respective market. For example, servers require higher performance, while the mobile ecosystem is sometimes able to sacrifice overall performance for power savings, form factor, and usability.
- a variety of different interconnects can potentially benefit from subject matter described herein.
- USB Universal Serial Bus
- PCIe Peripheral Component Interconnect Express
- QPI QuickPath Interconnect
- a primary goal of PCIe is to enable components and devices from different vendors to inter-operate in an open architecture, spanning multiple market segments; Clients (Desktops and Mobile), Servers (Standard and Enterprise), and Embedded and Communication devices.
- PCI Express is a high performance, general purpose I/O interconnect defined for a wide variety of future computing and communication platforms.
- PCI attributes such as its usage model, load-store architecture, and software interfaces
- PCI Express Some PCI attributes, such as its usage model, load-store architecture, and software interfaces, have been maintained through its revisions, whereas previous parallel bus implementations have been replaced by a highly scalable, fully serial interface.
- the more recent versions of PCI Express take advantage of advances in point-to-point interconnects, Switch-based technology, and packetized protocol to deliver new levels of performance and features. Power Management, Quality Of Service (QoS), Hot-Plug/Hot-Swap support, Data Integrity, and Error Handling are among some of the advanced features supported by PCI Express.
- QoS Quality Of Service
- Hot-Plug/Hot-Swap support Data Integrity
- Error Handling are among some of the advanced features supported by PCI Express.
- USB 3.x addresses interconnects connecting hosts with devices, for instance, to extend the functionality of the host through various peripheral devices, such as telephone/fax/modem adapters, answering machines, scanners, PDA's, keyboards, mice, etc.
- peripheral devices such as telephone/fax/modem adapters, answering machines, scanners, PDA's, keyboards, mice, etc.
- USB can provide a user-friendly plug-and-play way to attach external peripherals to a Personal Computer (PC).
- PC Personal Computer
- USB can be used to facilitate connection between other devices, such as connecting a printer to interface to interface directly with a camera, to connect a mobile device to keyboards, mice, and external displays.
- USB ports are being increasingly embedded in more other appliances, including automobiles, televisions, and set-top boxes.
- USB's power delivery features have allowed USB ports to also function as a mobile device charging solution, among other solutions.
- interconnect architectures such as a PCIe-compliant architecture, a USB-compliant architecture, a QPI-compliant architecture, a MIPI compliant architecture, or other known interconnect architecture.
- System 100 includes processor 105 and system memory 110 coupled to controller hub 115 .
- Processor 105 can include any processing element, such as a microprocessor, a host processor, an embedded processor, a co-processor, or other processor.
- Processor 105 is coupled to controller hub 115 through front-side bus (FSB) 106 .
- FSB 106 is a serial point-to-point interconnect as described below.
- link 106 includes a serial, differential interconnect architecture that is compliant with different interconnect standard.
- System memory 110 includes any memory device, such as random access memory (RAM), non-volatile (NV) memory, or other memory accessible by devices in system 100 .
- System memory 110 is coupled to controller hub 115 through memory interface 116 .
- Examples of a memory interface include a double-data rate (DDR) memory interface, a dual-channel DDR memory interface, and a dynamic RAM (DRAM) memory interface.
- DDR double-data rate
- DRAM dynamic RAM
- controller hub 115 can include a root hub, root complex, or root controller, such as in an interconnection hierarchy.
- controller hub 115 include a chipset, a memory controller hub (MCH), a northbridge, an interconnect controller hub (ICH) a southbridge, and a root controller/hub.
- chipset refers to two physically separate controller hubs, e.g., a memory controller hub (MCH) coupled to an interconnect controller hub (ICH).
- MCH memory controller hub
- ICH interconnect controller hub
- ICH interconnect controller hub
- current systems often include the MCH integrated with processor 105 , while controller 115 is to communicate with I/O devices, in a similar manner as described below.
- peer-to-peer routing is optionally supported through root complex 115 .
- controller hub 115 is coupled to switch/bridge 120 through serial link 119 .
- Input/output modules 117 and 121 which may also be referred to as interfaces/ports 117 and 121 , can include/implement a layered protocol stack to provide communication between controller hub 115 and switch 120 .
- multiple devices are capable of being coupled to switch 120 .
- Switch/bridge 120 can route packets/messages from device 125 upstream, i.e. up a hierarchy towards a root complex, to controller hub 115 and downstream, i.e. down a hierarchy away from a root controller, from processor 105 or system memory 110 to device 125 .
- Switch 120 in one embodiment, is referred to as a logical assembly of multiple virtual PCI-to-PCI bridge devices.
- Device 125 includes any internal or external device or component to be coupled to an electronic system, such as an I/O device, a Network Interface Controller (NIC), an add-in card, an audio processor, a network processor, a hard-drive, a storage device, a CD/DVD ROM, a monitor, a printer, a mouse, a keyboard, a router, a portable storage device, a Firewire device, a Universal Serial Bus (USB) device, a scanner, and other input/output devices.
- Devices can include functionality for initiating and communicating with other devices using a close proximity wireless connection. Devices, in some contexts, can be referred to as an endpoint.
- a device 125 may include a bridge (e.g., a PCIe to PCI/PCI-X bridge) to support legacy or other versions of devices or interconnect fabrics supported by such devices.
- a bridge e.g., a PCIe to PCI/PCI-X bridge
- Graphics accelerator 130 can also be coupled to controller hub 115 through serial link 132 .
- graphics accelerator 130 is coupled to an MCH, which is coupled to an ICH.
- Switch 120 and accordingly I/O device 125 , is then coupled to the ICH.
- I/O modules 131 and 118 are also to implement a layered protocol stack to communicate between graphics accelerator 130 and controller hub 115 . Similar to the MCH discussion above, a graphics controller or the graphics accelerator 130 itself may be integrated in processor 105 .
- Layered protocol stack 200 can includes any form of a layered communication stack, such as a QPI stack, a PCIe stack, USB stack, a next generation high performance computing interconnect (HPI) stack, or other layered stack.
- protocol stack 200 can include transaction layer 205 , link layer 210 , and physical layer 220 .
- One or more interfaces such as interfaces 117 , 118 , 121 , 122 , 126 , and 131 in FIG. 1 , may be represented as communication protocol stack 200 .
- Representation as a communication protocol stack may also be referred to as a module or interface implementing/including a protocol stack.
- Packets can be used to communicate information between components. Packets can be formed in the Transaction Layer 205 and/or Data Link Layer 210 to carry the information from the transmitting component to the receiving component. As the transmitted packets flow through the other layers, they are extended with additional information used to handle packets at those layers. At the receiving side the reverse process occurs and packets get transformed from their Physical Layer 220 representation to the Data Link Layer 210 representation and finally (for Transaction Layer Packets) to the form that can be processed by the Transaction Layer 205 of the receiving device.
- transaction layer 205 can provide an interface between a device's processing core and the interconnect architecture, such as Data Link Layer 210 and Physical Layer 220 .
- a primary responsibility of the transaction layer 205 can include the assembly and disassembly of packets (i.e., transaction layer packets, or TLPs).
- the translation layer 205 can also manage credit-based flow control for TLPs.
- split transactions can be utilized, i.e., transactions with request and response separated by time, allowing a link to carry other traffic while the target device gathers data for the response, among other examples.
- Credit-based flow control can be used in some protocols to realize virtual channels and networks utilizing the interconnect fabric.
- a device can advertise an initial amount of credits for each of the receive buffers in Transaction Layer 205 .
- An external device at the opposite end of the link such as controller hub 115 in FIG. 1 , can count the number of credits consumed by each TLP.
- a transaction may be transmitted if the transaction does not exceed a credit limit. Upon receiving a response an amount of credit is restored.
- One example of an advantage of such a credit scheme is that the latency of credit return does not affect performance, provided that the credit limit is not encountered, among other potential advantages.
- four transaction address spaces can include a configuration address space, a memory address space, an input/output address space, and a message address space.
- Memory space transactions include one or more of read requests and write requests to transfer data to/from a memory-mapped location.
- memory space transactions are capable of using two different address formats, e.g., a short address format, such as a 32-bit address, or a long address format, such as 64-bit address.
- Configuration space transactions can be used to access configuration space of various devices connected to the interconnect. Transactions to the configuration space can include read requests and write requests.
- Message space transactions (or, simply messages) can also be defined to support in-band communication between interconnect agents. Therefore, in one example embodiment, transaction layer 205 can assemble packet header/payload 206 .
- a Link layer 210 can act as an intermediate stage between transaction layer 205 (or a protocol layer) and the physical layer 220 .
- a responsibility of the data link layer 210 is providing a reliable mechanism for exchanging Transaction Layer Packets (TLPs) between two components on a link.
- TLPs Transaction Layer Packets
- One side of the Data Link Layer 210 accepts TLPs assembled by the Transaction Layer 205 , applies packet sequence identifier 211 , i.e. an identification number or packet number, calculates and applies an error detection code, i.e. CRC 212 , and submits the modified TLPs to the Physical Layer 220 for transmission across a physical to an external device.
- physical layer 220 includes logical sub block 221 and electrical sub-block 222 to physically transmit a packet to an external device.
- logical sub-block 221 is responsible for the “digital” functions of Physical Layer 221 .
- the logical sub-block can include a transmit section to prepare outgoing information for transmission by physical sub-block 222 , and a receiver section to identify and prepare received information before passing it to the Link Layer 210 .
- Physical block 222 includes a transmitter and a receiver.
- the transmitter is supplied by logical sub-block 221 with symbols, which the transmitter serializes and transmits onto to an external device.
- the receiver is supplied with serialized symbols from an external device and transforms the received signals into a bit-stream.
- the bit-stream is de-serialized and supplied to logical sub-block 221 .
- an 8b/10b transmission code is employed, where ten-bit symbols are transmitted/received.
- special symbols are used to frame a packet with frames 223 .
- the receiver also provides a symbol clock recovered from the incoming serial stream.
- a layered protocol stack is not so limited. In fact, any layered protocol may be included/implemented and adopt features discussed herein, as well as other additional or alternative features.
- a port/interface that is represented as a layered protocol can include: (1) a first layer to assemble packets, i.e. a transaction layer; a second layer to sequence packets, i.e. a link layer; and a third layer to transmit the packets, i.e. a physical layer.
- a high performance interconnect layered protocol as described herein, is utilized.
- a serial point-to-point link 305 can include any transmission path for transmitting serial data. Accordingly, a device can include transmission logic to transmit data to another device and receiving logic to receive data from the other device. In other words, two transmitting paths (e.g., one upstream and one downstream) can be included in some implementations of a link 305 .
- a transmission path refers to any path for transmitting data, such as a transmission line, a copper line, an optical line, a wireless communication channel, an infrared communication link, or other communication path.
- a link may support one lane—each lane representing a set of differential signal pairs (one pair for transmission, one pair for reception).
- a link may aggregate multiple lanes (e.g., denoted by m and n), where the number of lanes represents the potential supported link width of the link 305 , such as 1, 2, 4, 8, 12, 16, 32, 64 lanes, or wider).
- a device can include and utilize a port to 310 to facilitate the link 305 .
- the port 310 can communicate data over the link 305 with a port 315 of another endpoint device.
- the port 310 can include a transmitter port 320 and a receiver port 325 .
- the transmitter port 320 can be utilized in a downstream sublink 330 to send data to the other device over corresponding lanes (e.g., lanes 0-m).
- a receiver port 325 can receive data from the other device over an upstream sublink 335 (including lanes 0-n).
- Some links can utilize a differential pair to realize two transmission paths to transmit differential signals.
- a first line toggles from a low voltage level to a high voltage level, i.e. a rising edge
- the other line can drives from a high logic level to a low logic level, i.e. a falling edge.
- Differential signals can potentially demonstrate better electrical characteristics, such as better signal integrity, i.e. cross-coupling, voltage overshoot/undershoot, ringing, among other example advantages. This allows for a better timing window, which enables faster transmission frequencies, among other potential advantages.
- link training can be provided and include the sending of one or more of training sequences, ordered sets, and control sequences, such as in connection with a defined supersequence to adapt and configure characteristics of the link.
- electrical characteristics of a lane can be adjusted between a transmitter and receiver based, for instance, on sample data transmitted between the transmitter and receiver.
- receiver adaptation can include the transmitter sending a data pattern to the receiver with logic at the receiver adjusting electrical characteristics at the receiver to adapt the lane for the link.
- Transmitter adaptation can involve the transmitter sending sample data to the receiver and the receiver sending feedback to the transmitter that can be used by the transmitter to make adjustments at the transmitter to adapt the lane. The receiver can continue to send feedback to the transmitter based on the adjustments made at the transmitter.
- each device can further perform additional initialization tasks utilizing the supersequences. For instance, each device can perform debouncing, bit lock, byte lock, descrambling, and deskewing utilizing the supersequences. Additional initialization information can be communicated through the headers and payloads of the TSes included in the supersequences.
- portions of supersequences can be scrambled (e.g., by XOR-ing the sequence bits with a pseudorandom bit sequence (PRBS), among other examples).
- ordered sets and control sequences are not scrambled or staggered and are transmitted identically, simultaneously and completely on all lanes.
- a valid reception of an ordered set may include checking of at least a portion of the ordered set (or entire ordered set for partial ordered sets).
- Ordered sets may include an electrically ordered set (EOS), such as an Electrical Idle Ordered Set (EIOS) or an EIEOS.
- EOS electrically ordered set
- EIOS Electrical Idle Ordered Set
- EIEOS Electrical Idle Ordered Set
- Supersequences in one embodiment, can include the insertion of an EOS, such as an EIEOS, in a training sequence stream and the supersequences (and electrical ordered set) can be repeated over short intervals (e.g., approximately one-thousand unit intervals (or ⁇ 1KUI)).
- the training supersequences may be used for one or more of deskew, configuration and for communicating initialization target, lane map, etc.
- the EIEOS can be used for one or more of transitioning a lane from inactive to active state, screening for good lanes, identifying symbol and TS boundaries, among other examples. Scrambled portions of a sequence can also be used, for instance, to facilitate other configuration tasks such as adaptation, deskew, among other example tasks.
- Latency fixing can also be provided in some implementations.
- Latency can include not only the latency introduced by the transmission media, but also the latency resulting from processing by the agent on the other side the link.
- Latency of a lane can be determined during initialization of the link. Further, changes in the latency can also be determined. From the determined latency, latency fixing can be initiated to compensate for such changes and return the latency expected for lanes to a constant, expected value. Maintaining consistent latency on a lane can be critical to maintaining determinism in some systems, among other factors.
- Close proximity communications can involve devices being brought close together (e.g., on the order of millimeter centimeters or inches) to facilitate a wireless network connection between the devices. In some cases, the devices are to be brought into contact (or in near contact) with each other to facilitate the wireless connection. Close proximity network technologies can include such examples as traditional near field communications (NFC) as well as higher frequency technologies that allow high bandwidth close proximity connections.
- NFC near field communications
- a near-field communication link can refer to a wireless link between a transmitting and a receiving antenna, where the distance between the respective antennas is roughly less than 2 D 2 /lambda, where D is the largest dimension of the source of the radiation, and lambda is the wavelength, among other examples.
- extremely high frequency (EHF) signals can be utilized as a carrier using suitable modulation methods to send data over a near-field, or other close proximity, wireless connection while maintaining high bandwidths.
- EHF extremely high frequency
- emerging close proximity technologies can serve as the medium for a range of communication protocols from sub-100 Mbps low-speed technologies (e.g., I2C, I2S, GPIO) to multi Gbps high-speed protocols (e.g., USB3, PCIe).
- Devices can incorporate close proximity technologies to facilitate inter-device communications without the use of a physical connectors. This feature can permit devices to be developed that do not have any (or have fewer) physical holes in the form factor that can allow more attractive industrial designs that may be sleek, waterproof, or possess other example advantages.
- High speed close proximity technologies can expand the use of such connections, as they have the potential to support popular high speed protocols, such as PCIe, QPI, High-Definition Multimedia interface (HDMI), Thunderbolt, among other examples.
- Existing close proximity technologies are limited in their ability to scale and interoperate. For instance, existing close proximity technologies lack a scalable framework for discovering the different protocols and capabilities supported by each link partner, among other example deficiencies.
- close proximity communication support may be hardcoded to only support a particular mode and communicate with a particular class of link partners (e.g., the corresponding dock of the device).
- a system can be provided that can facilitate a close proximity wireless connection that allows two devices to communicate configuration and modes and determine a particular protocol, from multiple available protocols, to be used in communications over the close proximity wireless connection.
- portions of an existing protocol can be leveraged to assist in facilitating the negotiation of a contract for the communications between the devices over the close proximity wireless communication.
- Such a protocol can include protocols that aim to establish a universal I/O solution, such as USB Type-C, among other examples.
- FIG. 4 a simplified block diagram 400 is presented showing an example endpoint computing device 405 , such as a smartphone or other mobile computing device, that possesses a close proximity communication module that can facilitate the negotiation and configuration of multiple different modes and protocols for use in communications with multiple different computing devices (e.g., 410 , 415 , 420 , 425 , 430 , 435 ).
- a close proximity wireless connection can be established with one of a variety of different traditional personal computing peripherals, such as a printer 410 , external memory device 415 , and display device 420 , among other examples.
- the device 405 can further utilize its close proximity communication module to connect with less conventional computing devices, such as the on-board computing system of an automobile (e.g., 425 ), a smart household or industrial appliance, a home automation system, among other examples. Further, device 405 can communicate with other personal computing devices and hosts (e.g., 430 , 435 ), such as other smartphones, tablets, laptops, desktops, set top boxes, gaming systems, and the like.
- the other devices communicate with computing device 405 with their own respective close proximity communication module.
- these other computing devices e.g., 430
- a protocol can be provided to facilitate the negotiation of modes and roles within a communication session between two devices (e.g., 405 and any one of 410 , 415 , 420 , 425 , 430 , 435 ).
- the device 405 can act as a host while the other device it connects to (e.g., printer 410 ) assumes the role of an accessory or hub (e.g., a USB “device”).
- the devices communicating over a close proximity wireless channel can both assume the host role, among other examples.
- a device can communicate with another device using an adapter device.
- the adapter device can include a close proximity communication module to communicate with the device 405 and a wireline connector to connect to a legacy port of another device.
- the device 405 can thereby utilize its close proximity communication module to connect with another device that uses the adapter device, the adapter device serving as the wireless connection point between the other device and device 405 , among other examples.
- Link partner 505 can include and integrate a system on chip (SoC) 515 and a close proximity communication module 520 , which can include a close proximity wireless radio and antennae for sending and receiving wireless signals over a close proximity wireless channel.
- SoC system on chip
- the SoC 515 can integrate the components that support the various low and high speed I/O components of the first link partner 505 that will use the close proximity channel as the medium of transport.
- An SoC can be implemented as a monolithic single chip SoC or multiple chips, among other examples.
- Logic can be included in one or more of the components of the link partner 505 and/or close proximity wireless communication module 520 to facilitate establishment of close proximity wireless communications with other link partners (e.g., 510 ).
- Other link partners 510 can likewise include a close proximity communications module 525 and corresponding logic.
- Such logic can be implemented in hardware and/or software to support dynamic discovery of capabilities of link partners at association time and negotiate a corresponding protocol for use over the connection. By dynamically discovering the capabilities of the link partner, the connection logic can properly assume the appropriate host/device role of the link partner, determine whether to adopt an alternate protocol (or protocols) for use in communicating with the link partner, and therewith establish appropriate communications. Further, the logic can support a close proximity communications framework that can prevent the need for hardcoding the close proximity communication for a single communication protocol use case and significantly improve interoperability across a wide variety of usages.
- a close proximity communications module (e.g., 520 , 525 ) can implement the medium for the link and include functionality for both high speed and low speed data transport over the close proximity wireless link.
- a close proximity radio can convert low speed signals (e.g., from a low speed port 530 ) into wireless signals over the link and can likewise convert incoming low frequency wireless signals into signals for consumption by the SOC (and other components integrated using the SOC 515 .
- the close proximity radio can likewise convert signals from a high speed transmission port (e.g., 535 ) for wireless transmission and receive high speed wireless signals for high speed receiver port 540 .
- close proximity communications module 520 can be provided specifically for ports 530 , 535 , 540 . Additionally, close proximity communications module 520 can be configured to perform the initiation and configuration of a close proximity communication link that is to support data that is to be transmitted and/or received using numerous high speed lanes 545 of the link.
- additional close proximity radios i.e., radios and antennae
- the link partner 510 can likewise include multiple close proximity radios (e.g., 560 , 565 ) to communicate with the additional radios (e.g., 550 , 555 ) of its partner.
- an initiation step 605 can begin the negotiation of a close proximity wireless link.
- initiation 605 can include a device identifying the presence of a link partner using a beaconing protocol.
- the beaconing protocol can be configured for use in detecting that the link device is within close proximity to another device (i.e., a potential link partner) that also supports the close proximity protocol.
- the beaconing protocol can be proprietary to the close proximity transport.
- a link partner can be brought into close proximity with a device by bringing the link partner within a few centimeters of the device. In other instances, suitable proximity may not be detected until the device is brought into at least partial physical contact with the link partner, among other examples.
- the devices can perform a channel configuration entry handshake 610 .
- the channel configuration entry handshake 610 can be completed to indicate entry into a channel configuration mode.
- the handshake can include the transmission of a pre-defined low-speed data sequence (e.g., “0101”) over the close-proximity link.
- the link partner can also transmit the data sequence, with each device monitoring (e.g., 615 ) for the receipt of the sequence from its link partner following initiation 605 before proceeding (e.g., to 620 ).
- the sequence can be received and transmitted over a low speed I/O interface (e.g., a general-purpose input/output (GPIO) interface) between the radio and the SoC of the device.
- a low speed I/O interface e.g., a general-purpose input/output (GPIO) interface
- more complex data sequences can be transported to allow some degree of channel conditioning and link adaptation to be facilitated and negotiated between the two link partners in addition to coordinating the link partners' entry into a channel configuration mode or state (e.g., at 620 ).
- the data sequence can include or be structured with qualities similar to an electrical ordered set, a series of training sequences, or another data sequence with qualities to enable performance of various adaptation tasks such as synchronization or deskew of the link partners, among other examples.
- each link partner While in a channel configuration state, each link partner can transmit its respective channel configuration preference or mode to its link partner. For instance, following the handshake 610 , each link partner can send a signal with a repeating pre-defined encoding that indicates a mode the corresponding device intends to assume in the communication. These signals can be sent and received, in some instances, as a low speed signal over a low speed interface.
- Table 1 includes example encoding values that may be used during a configuration 620 in one simplified implementation. It should be appreciated that these are presented only to illustrate a potential example implementation and that alternative encodings can also be utilized without departing from the subject matter described herein. For instance, longer encodings can be defined to support more modes. Indeed, encoding values can be defined that allow the set of supported modes to be expanded as new modes are defined or added, among other considerations.
- modes can correspond to the type of link partner.
- a device can support multiple modes and the mode that is advertised can reflect the current use of the device. For instance, a user can select to use the device in a particular mode.
- the mode can be set automatically based on a detected context of the device. The context can relate to an application that is used by the device, can be discovered from data describing a condition of the device, among other examples.
- the mode can be dependent on the mode advertised by its link partner. For instance, in some implementations, a link partner can determine that a particular one of its multiple supported modes is to be advertised to its link partner based on and in response to a complimentary mode advertised by its link partner.
- a device Upon receiving and properly interpreting the advertised mode of its link partner, a device can indicate that the advertised signal was successfully received by sending a configuration state exit signal (e.g., at 625 ).
- the exit signal can be sent as a party of an exit handshake 625 .
- the exit handshake can be completed to indicate an exit from the channel configuration state.
- a low frequency exit handshake signal e.g., “1010”
- the sequence can be received and transmitted, in some instances, using a GPIO interface between the radio and the SoC of the device.
- the devices can exit the channel configuration mode when each has received and identified the handshake signal (e.g., at 630 ) from the other device.
- identification of the operating mode of a device's link partner can allow the device to identify how to communicate and interoperate with the device over the close proximity wireless channel. This can include the selection of a particular protocol or the enablement of sub-features of the protocol based on the mode of the link partner. For instance, both devices may only support a single protocol, but only a subset of the complete set of the protocol's features may be supported by at least one of the devices (e.g., for USB, features might include role (e.g., host-only/device-only/dual-role) and speed (e.g., high speed, super speed, 3.1), among other examples).
- the device's link partner can make a similar determination as to the protocols and/or protocol features it supports.
- the combination of roles or modes advertised by the two link partners can be mapped to a particular communication protocol or methodology to employ on the link. For instance, a first link partner may advertise a first mode and the second link partner may advertise a second mode. As each of the first and second link partners understand their own modes and receive the mode of the other link partner, each is equipped with an understanding of the pair of modes involved in the session. Based on this combination, or pairing, of modes, the devices can each identify the same appropriate communication protocol (and/or protocol features) to employ. The devices can then proceed into the main functional mode (e.g., 645 ) to begin communication over the link in accordance with the identified protocol.
- the main functional mode e.g., 645
- configuration of the link can take place in stages. For instance, in addition to a channel configuration stage (e.g., 620 ), two link partners can attempt to make use of additional stages (e.g., 650 ) to continue negotiation of the link's configuration to configure the link at a more fine-grained level and enable alternative protocols, protocol features and modes (or sub-protocols or sub-modes of the modes and protocols identified during an early configuration stage (e.g., 620 )).
- a protocol negotiation mode can be provided that is supported by at least some link partners. Backward compatibility can be preserved for devices that do not support this more fine-grained negotiation by first ascertaining whether the link partners each support the protocol negotiation mode (e.g., at 640 ).
- each link partner can advertise through an encoded signal whether it supports an additional protocol negotiation stage.
- the protocol negotiation stage may involve the sending of signals and messages that comply with a particular communication protocol and the ability of either device to participate in the protocol negotiation stage can be dependent on the device's ability to support the particular protocol.
- the link partners can advertise their support of the protocol negotiation stage (e.g., 650 ) through a handshake. For instance, a first signal can indicate that the protocol negotiation stage is supported by the sending device, while a second signal indicates that the protocol negotiation is not supported.
- Table 2 illustrates one example implementation of protocol negotiation stage handshake signaling, although other implementations can adopt alternative signaling values and handshaking protocols, among other examples.
- both link partners can finalize the link configuration based solely the results of the previous link configuration stage(s) (e.g., 620 ). However, if both devices implement the protocol negotiation stage 650 , the devices can enter the protocol negotiation stage based on the handshake (e.g., at 635 , 640 ).
- the protocol negotiation stage 650 can involve the sending of packetized data and/or messages with more sophisticated encodings. Further, in some instances, higher speed data transmissions can be utilized to send the protocol negotiation stage messages between the devices (although low speed signaling can alternatively be employed).
- the modes of the devices as advertised in a previous link configuration phase (e.g., 620 ) can be utilized to inform each device what communication protocols and protocol features might be appropriate to use in the communications between the devices. For instance, each device can identify one or more of its support protocols and advertise a preferred one of the supported protocols in a protocol negotiation message. In some examples, one of the link partners can assume the role of master in the protocol negotiation. Further, a device may support multiple different communications protocols, including multiple high-speed communications protocols.
- Such protocols can include, for instance, PCIe, USB, Low Latency Interface (LLI), Unipro, Camera Interface Specification (CSI), Display Serial Interface (DSI), QPI, HDMI, Inter-IC Sound (I2S), DisplayPort, Thunderbolt, among others.
- the device can select an appropriate one of the protocols and request that this protocol be adopted in communications over the close proximity wireless connection.
- the device can also receive messages within the protocol negotiation stage to indicate the protocols supported by the link partner and can suggest or confirm a particular protocol that is supported by both devices.
- the close proximity wireless communication can serve as a unified wireless I/O for the device, allowing the device to potentially communicate over any one of its several supported communications protocols with a wide variety of devices.
- the particular protocol utilized during the protocol negotiation stage 650 can include steps and messages for ending the protocol negotiation and exiting the protocol negotiation stage 650 .
- additional configuration stages can be supported and can be entered into based on the results of protocol negotiation stage 650 before proceeding to the main functional mode 645 of the link.
- the devices upon exiting the protocol negotiation mode 650 , can enter the main functional mode and exchange substantive communications over the close proximity wireless communication channel in accordance with the protocols and configuration contract negotiated through the preceding configuration negotiation stages 620 , 650 .
- the main functional mode 645 can involve high speed signaling in accordance with the specification (or a wireless version of the specification) of the negotiated protocol.
- one of the radios can handle the negotiation stages and, based on the link configuration that results, can cause any number of the remaining radios (e.g., 550 , 555 , 560 , 565 ) to be invoked to handle communications (e.g., with the primary radio) in the main functional mode.
- protocols used in one or more of the configuration stages utilized to dynamically discover link partner modes and supported protocols and configure a corresponding close proximity wireless link can build upon principles and hardware utilized to support other protocols, including non-wireless communication protocols, such as USB 3.1.
- non-wireless communication protocols such as USB 3.1.
- at least a portion of the USB Type-C wired infrastructure can be leveraged to enable one or more of the configuration stages in a close proximity wireless channel. This can allow Type-C hardware platforms and software drivers to be re-used for close proximity wireless communications. This can also simplify the design of adapter that enable support for physical Type-C connectors, among other examples. Aspects of the Type-C platform can be re-used, such as handshake codes and sequences.
- USB Power Delivery mode can be re-used to facilitate a protocol negotiation phase (in 650 ), among other examples.
- the USB PD protocol can be used to communicate further options such as high voltage charging and alternate protocol mode support, among other examples.
- FIG. 7 illustrates a block diagram of an exemplary computer system formed with a processor that includes execution units to execute an instruction, where one or more of the interconnects implement one or more features in accordance with one embodiment of the present invention is illustrated.
- System 700 includes a component, such as a processor 702 to employ execution units including logic to perform algorithms for process data, in accordance with the present invention, such as in the embodiment described herein.
- System 700 is representative of processing systems based on the PENTIUM IIITM, PENTIUM 4TM, XeonTM, Itanium, XScaleTM and/or StrongARMTM microprocessors, although other systems (including PCs having other microprocessors, engineering workstations, set-top boxes and the like) may also be used.
- sample system 700 executes a version of the WINDOWSTM operating system available from Microsoft Corporation of Redmond, Wash., although other operating systems (UNIX and Linux for example), embedded software, and/or graphical user interfaces, may also be used.
- WINDOWSTM operating system available from Microsoft Corporation of Redmond, Wash.
- other operating systems UNIX and Linux for example
- embedded software and/or graphical user interfaces
- Embodiments are not limited to computer systems. Alternative embodiments of the present invention can be used in other devices such as handheld devices and embedded applications. Some examples of handheld devices include cellular phones, Internet Protocol devices, digital cameras, personal digital assistants (PDAs), and handheld PCs. Embedded applications can include a micro controller, a digital signal processor (DSP), system on a chip, network computers (NetPC), set-top boxes, network hubs, wide area network (WAN) switches, or any other system that can perform one or more instructions in accordance with at least one embodiment.
- DSP digital signal processor
- NetPC network computers
- Set-top boxes network hubs
- WAN wide area network
- processor 702 includes one or more execution units 708 to implement an algorithm that is to perform at least one instruction.
- One embodiment may be described in the context of a single processor desktop or server system, but alternative embodiments may be included in a multiprocessor system.
- System 700 is an example of a ‘hub’ system architecture.
- the computer system 700 includes a processor 702 to process data signals.
- the processor 702 includes a complex instruction set computer (CISC) microprocessor, a reduced instruction set computing (RISC) microprocessor, a very long instruction word (VLIW) microprocessor, a processor implementing a combination of instruction sets, or any other processor device, such as a digital signal processor, for example.
- CISC complex instruction set computer
- RISC reduced instruction set computing
- VLIW very long instruction word
- the processor 702 is coupled to a processor bus 710 that transmits data signals between the processor 702 and other components in the system 700 .
- the elements of system 700 e.g. graphics accelerator 712 , memory controller hub 716 , memory 720 , I/O controller hub 724 , wireless transceiver 726 , Flash BIOS 728 , Network controller 734 , Audio controller 736 , Serial expansion port 738 , I/O controller 740 , etc.
- graphics accelerator 712 e.g. graphics accelerator 712 , memory controller hub 716 , memory 720 , I/O controller hub 724 , wireless transceiver 726 , Flash BIOS 728 , Network controller 734 , Audio controller 736 , Serial expansion port 738 , I/O controller 740 , etc.
- the processor 702 includes a Level 1 (L1) internal cache memory 704 .
- the processor 702 may have a single internal cache or multiple levels of internal caches. Other embodiments include a combination of both internal and external caches depending on the particular implementation and needs.
- Register file 706 is to store different types of data in various registers including integer registers, floating point registers, vector registers, banked registers, shadow registers, checkpoint registers, status registers, and instruction pointer register.
- Execution unit 708 including logic to perform integer and floating point operations, also resides in the processor 702 .
- the processor 702 includes a microcode (ucode) ROM to store microcode, which when executed, is to perform algorithms for certain macroinstructions or handle complex scenarios.
- microcode is potentially updateable to handle logic bugs/fixes for processor 702 .
- execution unit 708 includes logic to handle a packed instruction set 709 . By including the packed instruction set 709 in the instruction set of a general-purpose processor 702 , along with associated circuitry to execute the instructions, the operations used by many multimedia applications may be performed using packed data in a general-purpose processor 702 .
- System 700 includes a memory 720 .
- Memory 720 includes a dynamic random access memory (DRAM) device, a static random access memory (SRAM) device, flash memory device, or other memory device.
- DRAM dynamic random access memory
- SRAM static random access memory
- Memory 720 stores instructions and/or data represented by data signals that are to be executed by the processor 702 .
- any of the aforementioned features or aspects of the invention may be utilized on one or more interconnect illustrated in FIG. 7 .
- an on-die interconnect (ODI), which is not shown, for coupling internal units of processor 702 implements one or more aspects of the invention described above.
- the invention is associated with a processor bus 710 (e.g. other known high performance computing interconnect), a high bandwidth memory path 718 to memory 720 , a point-to-point link to graphics accelerator 712 (e.g. a Peripheral Component Interconnect express (PCIe) compliant fabric), a controller hub interconnect 722 , an I/O or other interconnect (e.g. USB, PCI, PCIe) for coupling the other illustrated components.
- PCIe Peripheral Component Interconnect express
- Some examples of such components include the audio controller 736 , firmware hub (flash BIOS) 728 , wireless transceiver 726 , data storage 723 , legacy I/O controller 710 containing user input and keyboard interfaces 742 , a serial expansion port 738 such as Universal Serial Bus (USB), and a network controller 734 .
- the data storage device 723 can comprise a hard disk drive, a floppy disk drive, a CD-ROM device, a flash memory device, or other mass storage device.
- SOC 800 is included in user equipment (UE).
- UE refers to any device to be used by an end-user to communicate, such as a hand-held phone, smartphone, tablet, ultra-thin notebook, notebook with broadband adapter, or any other similar communication device.
- a UE connects to a base station or node, which potentially corresponds in nature to a mobile station (MS) in a GSM network.
- MS mobile station
- SOC 800 includes 2 cores— 806 and 807 . Similar to the discussion above, cores 806 and 807 may conform to an Instruction Set Architecture, such as an Intel® Architecture CoreTM-based processor, an Advanced Micro Devices, Inc. (AMD) processor, a MIPS-based processor, an ARM-based processor design, or a customer thereof, as well as their licensees or adopters. Cores 806 and 807 are coupled to cache control 808 that is associated with bus interface unit 809 and L2 cache 811 to communicate with other parts of system 800 . Interconnect 810 includes an on-chip interconnect, such as an IOSF, AMBA, or other interconnect discussed above, which potentially implements one or more aspects of described herein.
- an Intel® Architecture CoreTM-based processor such as an Intel® Architecture CoreTM-based processor, an Advanced Micro Devices, Inc. (AMD) processor, a MIPS-based processor, an ARM-based processor design, or a customer thereof, as well as their licensees or adopters.
- Interconnect 810 provides communication channels to the other components, such as a Subscriber Identity Module (SIM) 830 to interface with a SIM card, a boot rom 835 to hold boot code for execution by cores 806 and 807 to initialize and boot SOC 800 , a SDRAM controller 840 to interface with external memory (e.g. DRAM 860 ), a flash controller 845 to interface with non-volatile memory (e.g. Flash 865 ), a peripheral control 850 (e.g. Serial Peripheral Interface) to interface with peripherals, video codecs 820 and Video interface 825 to display and receive input (e.g. touch enabled input), GPU 815 to perform graphics related computations, etc. Any of these interfaces may incorporate aspects of the invention described herein.
- SIM Subscriber Identity Module
- boot rom 835 to hold boot code for execution by cores 806 and 807 to initialize and boot SOC 800
- SDRAM controller 840 to interface with external memory (e.g. DRAM 860 )
- flash controller 845
- a UE includes a radio for communication.
- these peripheral communication modules are not all required.
- a radio for external communication is to be included.
- a design may go through various stages, from creation to simulation to fabrication.
- Data representing a design may represent the design in a number of manners.
- the hardware may be represented using a hardware description language (HDL) or another functional description language.
- HDL hardware description language
- a circuit level model with logic and/or transistor gates may be produced at some stages of the design process.
- most designs, at some stage reach a level of data representing the physical placement of various devices in the hardware model.
- the data representing the hardware model may be the data specifying the presence or absence of various features on different mask layers for masks used to produce the integrated circuit.
- such data may be stored in a database file format such as Graphic Data System II (GDS II), Open Artwork System Interchange Standard (OASIS), or similar format.
- GDS II Graphic Data System II
- OASIS Open Artwork System Interchange Standard
- software based hardware models, and HDL and other functional description language objects can include register transfer language (RTL) files, among other examples.
- RTL register transfer language
- Such objects can be machine-parsable such that a design tool can accept the HDL object (or model), parse the HDL object for attributes of the described hardware, and determine a physical circuit and/or on-chip layout from the object. The output of the design tool can be used to manufacture the physical device. For instance, a design tool can determine configurations of various hardware and/or firmware elements from the HDL object, such as bus widths, registers (including sizes and types), memory blocks, physical link paths, fabric topologies, among other attributes that would be implemented in order to realize the system modeled in the HDL object.
- Design tools can include tools for determining the topology and fabric configurations of system on chip (SoC) and other hardware device.
- SoC system on chip
- the HDL object can be used as the basis for developing models and design files that can be used by manufacturing equipment to manufacture the described hardware.
- an HDL object itself can be provided as an input to manufacturing system software to cause the described hardware.
- the data may be stored in any form of a machine readable medium.
- a memory or a magnetic or optical storage such as a disc may be the machine readable medium to store information transmitted via optical or electrical wave modulated or otherwise generated to transmit such information.
- an electrical carrier wave indicating or carrying the code or design is transmitted, to the extent that copying, buffering, or re-transmission of the electrical signal is performed, a new copy is made.
- a communication provider or a network provider may store on a tangible, machine-readable medium, at least temporarily, an article, such as information encoded into a carrier wave, embodying techniques of embodiments of the present disclosure.
- a module as used herein refers to any combination of hardware, software, and/or firmware.
- a module includes hardware, such as a micro-controller, associated with a non-transitory medium to store code adapted to be executed by the micro-controller. Therefore, reference to a module, in one embodiment, refers to the hardware, which is specifically configured to recognize and/or execute the code to be held on a non-transitory medium.
- use of a module refers to the non-transitory medium including the code, which is specifically adapted to be executed by the microcontroller to perform predetermined operations.
- the term module in this example may refer to the combination of the microcontroller and the non-transitory medium.
- a first and a second module may share hardware, software, firmware, or a combination thereof, while potentially retaining some independent hardware, software, or firmware.
- use of the term logic includes hardware, such as transistors, registers, or other hardware, such as programmable logic devices.
- phrase ‘configured to,’ refers to arranging, putting together, manufacturing, offering to sell, importing and/or designing an apparatus, hardware, logic, or element to perform a designated or determined task.
- an apparatus or element thereof that is not operating is still ‘configured to’ perform a designated task if it is designed, coupled, and/or interconnected to perform said designated task.
- a logic gate may provide a 0 or a 1 during operation.
- a logic gate ‘configured to’ provide an enable signal to a clock does not include every potential logic gate that may provide a 1 or 0. Instead, the logic gate is one coupled in some manner that during operation the 1 or 0 output is to enable the clock.
- use of the phrases ‘to,’ ‘capable of/to,’ and or ‘operable to,’ in one embodiment refers to some apparatus, logic, hardware, and/or element designed in such a way to enable use of the apparatus, logic, hardware, and/or element in a specified manner.
- use of to, capable to, or operable to, in one embodiment refers to the latent state of an apparatus, logic, hardware, and/or element, where the apparatus, logic, hardware, and/or element is not operating but is designed in such a manner to enable use of an apparatus in a specified manner.
- a value includes any known representation of a number, a state, a logical state, or a binary logical state. Often, the use of logic levels, logic values, or logical values is also referred to as 1's and 0's, which simply represents binary logic states. For example, a 1 refers to a high logic level and 0 refers to a low logic level.
- a storage cell such as a transistor or flash cell, may be capable of holding a single logical value or multiple logical values.
- the decimal number ten may also be represented as a binary value of 1010 and a hexadecimal letter A. Therefore, a value includes any representation of information capable of being held in a computer system.
- states may be represented by values or portions of values.
- a first value such as a logical one
- a second value such as a logical zero
- reset and set in one embodiment, refer to a default and an updated value or state, respectively.
- a default value potentially includes a high logical value, i.e. reset
- an updated value potentially includes a low logical value, i.e. set.
- any combination of values may be utilized to represent any number of states.
- a non-transitory machine-accessible/readable medium includes any mechanism that provides (i.e., stores and/or transmits) information in a form readable by a machine, such as a computer or electronic system.
- a non-transitory machine-accessible medium includes random-access memory (RAM), such as static RAM (SRAM) or dynamic RAM (DRAM); ROM; magnetic or optical storage medium; flash memory devices; electrical storage devices; optical storage devices; acoustical storage devices; other form of storage devices for holding information received from transitory (propagated) signals (e.g., carrier waves, infrared signals, digital signals); etc, which are to be distinguished from the non-transitory mediums that may receive information there from.
- RAM random-access memory
- SRAM static RAM
- DRAM dynamic RAM
- ROM magnetic or optical storage medium
- flash memory devices electrical storage devices
- optical storage devices e.g., optical storage devices
- acoustical storage devices other form of storage devices for holding information received from transitory (propagated) signals (e.g., carrier waves, infrared signals, digital signals); etc, which are to be distinguished from the non-transitory mediums that may receive information there from.
- a machine-readable medium may include any mechanism for storing or transmitting information in a form readable by a machine (e.g., a computer), but is not limited to, floppy diskettes, optical disks, Compact Disc, Read-Only Memory (CD-ROMs), and magneto-optical disks, Read-Only Memory (ROMs), Random Access Memory (RAM), Erasable Programmable Read-Only Memory (EPROM), Electrically Erasable Programmable Read-Only Memory (EEPROM), magnetic or optical cards, flash memory, or a tangible, machine-readable storage used in the transmission of information over the Internet via electrical, optical, acoustical or other forms of propagated signals (e.g., carrier waves, infrared signals, digital signals, etc.). Accordingly, the computer-
- One or more embodiments may provide a method, an apparatus, a system, a machine readable storage, a machine readable medium, hardware- and/or software-based logic (e.g., a lane monitor), where a close proximity communication module initiates a close proximity wireless connection between a first device and a second device, and a channel configuration module sends first data over the wireless connection to advertise one or more supported channel configurations of the first device to the second device, and receives second data over the wireless connection.
- the second data is to advertise one or more supported channel configurations of the second device to the first device.
- a mode selector is provided to determine that a particular one of a plurality of modes of the first device is to be used in communications with the second device over the close proximity wireless connection based on the first and second data.
- a protocol selector is provided to determine that a particular one of a plurality of communication protocols is to be used in communications with the second device.
- the protocol selector is to receive a signal from the second device, and determine from the signal whether the second device supports a protocol negotiation stage, wherein a negotiation protocol is to be used in the protocol negotiation stage.
- a determination that the second device supports the protocol negotiation stage is to cause the first and second device to enter the protocol negotiation stage, and the first and second devices are to communicate messages according to the negotiation protocol in the protocol negotiation stage to determine that the particular protocol is to be used in the communications.
- a determination that the second device does not support the protocol negotiation stage causes a protocol to be determined for use in the communications based at least in part on the particular mode.
- the negotiation protocol comprises a protocol based on a Universal Serial Bus (USB) Power Delivery (PD) protocol.
- USB Universal Serial Bus
- PD Power Delivery
- the first device supports the use of any one of the plurality of communication protocols in communications over a close proximity wireless channel.
- the plurality of modes comprise a host mode, a device mode, and an adapter mode.
- a transmitter is provided to send particular data over the close proximity wireless channel to the second device according to the particular mode.
- the particular data is to be sent further based on a mode determined for the second device from the second data.
- the transmitter is to use a plurality of close proximity radios to send the particular data, and the plurality of close proximity radios correspond to a link width of a physical channel of the first device.
- the first and second data are to be sent in a channel configuration stage, and the first and second devices are to enter and exit the channel configuration using a corresponding handshake.
- One or more embodiments may provide a method, an apparatus, a system, a machine readable storage, a machine readable medium, hardware- and/or software-based logic (e.g., a lane monitor), where a close proximity communication module is provided that includes a wireless transmitter and wireless receiver to communicate with another device over a close proximity wireless connection.
- a protocol configuration module can be provided to send first data over the wireless connection to advertise one or more supported interconnect protocols supported by a particular device, receive second data over the wireless connection, where the second data is to advertise one or more interconnect protocols supported by the other device to the particular device, and select at least a particular one of the interconnect protocols supported by both the particular device and the other device for use in communications between the particular device and the other device over the close proximity wireless connection.
- the plurality of interconnect protocols comprise HDMI, USB, and PCIe.
- the first and second data each comprise one or more messages sent over the close proximity wireless connection according to a protocol negotiation protocol.
- the protocol configuration module is to determine whether the other device supports the protocol negotiation protocol from a signal received from the protocol negotiation protocol.
- One or more embodiments may provide an apparatus, a system, a machine readable storage, a machine readable medium, hardware- and/or software-based logic, and a method to initiate a close proximity wireless connection between a first device and a second device, enter a first channel configuration stage, send first data over the close proximity wireless connection within the first channel configuration stage to advertise one or more supported modes of the first device to the second device, receive second data over the close proximity wireless connection within the first channel configuration stage, wherein the second data is to advertise one or more supported modes of the second device to the first device, and enter a second channel configuration stage to determine that a particular one of a plurality of protocols is to be used in communications with the second device over the close proximity wireless connection.
- One or more embodiments may provide an apparatus and system that includes a first device comprising a first close proximity communication module, where the first device supports a first subset of a plurality of modes and a first subset of a plurality of communication protocols, and a second device including a second close proximity communication module, where the second device supports a second subset of a plurality of modes and a second subset of a plurality of communication protocols.
- the first and second devices are to negotiate over a close proximity wireless connection facilitated by the first and second close proximity communication modules to determine: which of the first subset of modes is to be used by the first device in subsequent communication over the close proximity wireless connection with the second device, which of the second subset of modes is to be used by the second device in the subsequent communication, and a particular one of the plurality of communication protocols to be used in the subsequent communication.
- each of the first and second devices support a high speed close proximity wireless connection and at least some of the plurality of communication protocols comprise high speed communication protocols.
- the first device comprises a host device and the second device comprises one of: a host device, a peripheral device, and an adapter device.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Information Transfer Systems (AREA)
- Health & Medical Sciences (AREA)
- Toxicology (AREA)
- Mobile Radio Communication Systems (AREA)
- Electromagnetism (AREA)
- General Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Communication Control (AREA)
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/576,170 US9723431B2 (en) | 2014-12-18 | 2014-12-18 | Close proximity transport configuration |
TW104136493A TWI556108B (zh) | 2014-12-18 | 2015-11-05 | 緊密相鄰傳輸組態之技術 |
EP15194179.6A EP3035713B1 (en) | 2014-12-18 | 2015-11-11 | Close proximity transport configuration |
KR1020150160361A KR101794606B1 (ko) | 2014-12-18 | 2015-11-16 | 근접 전송 구성을 위한 장치, 시스템 및 컴퓨터 판독 가능한 저장매체 |
JP2015224765A JP6092353B2 (ja) | 2014-12-18 | 2015-11-17 | 近接伝送構成 |
CN201511035973.XA CN105721021B (zh) | 2014-12-18 | 2015-11-18 | 紧邻传送配置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/576,170 US9723431B2 (en) | 2014-12-18 | 2014-12-18 | Close proximity transport configuration |
Publications (2)
Publication Number | Publication Date |
---|---|
US20160183031A1 US20160183031A1 (en) | 2016-06-23 |
US9723431B2 true US9723431B2 (en) | 2017-08-01 |
Family
ID=54703744
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/576,170 Active US9723431B2 (en) | 2014-12-18 | 2014-12-18 | Close proximity transport configuration |
Country Status (6)
Country | Link |
---|---|
US (1) | US9723431B2 (ko) |
EP (1) | EP3035713B1 (ko) |
JP (1) | JP6092353B2 (ko) |
KR (1) | KR101794606B1 (ko) |
CN (1) | CN105721021B (ko) |
TW (1) | TWI556108B (ko) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9940295B2 (en) * | 2015-08-14 | 2018-04-10 | Keyssa, Inc. | Extremely high frequency systems and methods of operating the same to establish USB data transport protocols |
US10019546B1 (en) | 2015-10-30 | 2018-07-10 | Amazon Technologies, Inc. | Modular system on chip configuration system |
US10882408B2 (en) * | 2016-08-24 | 2021-01-05 | Keyssa Systems, Inc. | Mechanical connectors for contactless communication units |
EP3544151B1 (en) * | 2016-11-15 | 2023-01-04 | LG Electronics Inc. | Wireless power transfer method and apparatus for same |
US20180329855A1 (en) * | 2017-05-12 | 2018-11-15 | Intel Corporation | Alternate protocol negotiation in a high performance interconnect |
CN112804142A (zh) * | 2018-09-06 | 2021-05-14 | 华为技术有限公司 | 发送报文的方法、网络设备及计算机存储介质 |
US11086358B2 (en) * | 2018-10-02 | 2021-08-10 | Google Llc | Systems, devices, and methods of wireless communication for wearable computing devices |
US11051154B2 (en) | 2018-10-03 | 2021-06-29 | Google Llc | Systems and methods for wirelessly coupling a wearable computing device |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1845632A1 (en) | 2005-01-31 | 2007-10-17 | Sony Corporation | Communication apparatus, communication method, and program |
JP2010157977A (ja) | 2009-01-05 | 2010-07-15 | Canon Inc | 通信装置および通信装置の制御方法 |
US20100267334A1 (en) * | 2009-04-15 | 2010-10-21 | Kabushiki Kaisha Toshiba | Electronic device and communication control method |
JP2011090396A (ja) | 2009-10-20 | 2011-05-06 | Seiko Epson Corp | Usbデバイス装置 |
US20110145427A1 (en) * | 2009-12-10 | 2011-06-16 | Brian Amento | Method and apparatus for providing media content using a mobile device |
US20120309303A1 (en) * | 2011-05-31 | 2012-12-06 | Qualcomm Incorporated | Methods and apparatus for improving nfc activation and data exchange reporting mechanisms |
JP2013156915A (ja) | 2012-01-31 | 2013-08-15 | Canon Inc | 通信装置、通信装置の制御方法、通信システム、プログラム |
US20130295849A1 (en) * | 2008-12-23 | 2013-11-07 | Interdigital Patent Holdings, Inc. | Data transfer between wireless devices |
US8823494B1 (en) * | 2010-11-19 | 2014-09-02 | Logitech Europe S.A. | Systems and methods for wireless device connection and pairing |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7146130B2 (en) | 2003-02-24 | 2006-12-05 | Qualcomm Incorporated | Wireless local access network system detection and selection |
US20090282130A1 (en) * | 2008-05-12 | 2009-11-12 | Nokia Corporation | Resource sharing via close-proximity wireless communication |
US8797942B2 (en) | 2009-09-25 | 2014-08-05 | Telefonaktiebolaget Lm Ericsson (Publ) | Random access with full coverage on selected resources |
CN101867396A (zh) * | 2010-04-29 | 2010-10-20 | 中兴通讯股份有限公司 | 基于nfc的电子凭证的传输方法和***、pos机和nfc终端 |
US8818276B2 (en) * | 2012-05-16 | 2014-08-26 | Nokia Corporation | Method, apparatus, and computer program product for controlling network access to guest apparatus based on presence of hosting apparatus |
US9516452B2 (en) * | 2012-06-28 | 2016-12-06 | Intel Corporation | Wireless data transfer with improved transport mechanism selection |
US9445267B2 (en) * | 2012-08-31 | 2016-09-13 | Apple Inc. | Bump or close proximity triggered wireless technology |
-
2014
- 2014-12-18 US US14/576,170 patent/US9723431B2/en active Active
-
2015
- 2015-11-05 TW TW104136493A patent/TWI556108B/zh active
- 2015-11-11 EP EP15194179.6A patent/EP3035713B1/en active Active
- 2015-11-16 KR KR1020150160361A patent/KR101794606B1/ko active IP Right Grant
- 2015-11-17 JP JP2015224765A patent/JP6092353B2/ja active Active
- 2015-11-18 CN CN201511035973.XA patent/CN105721021B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1845632A1 (en) | 2005-01-31 | 2007-10-17 | Sony Corporation | Communication apparatus, communication method, and program |
US20130295849A1 (en) * | 2008-12-23 | 2013-11-07 | Interdigital Patent Holdings, Inc. | Data transfer between wireless devices |
JP2010157977A (ja) | 2009-01-05 | 2010-07-15 | Canon Inc | 通信装置および通信装置の制御方法 |
US20100267334A1 (en) * | 2009-04-15 | 2010-10-21 | Kabushiki Kaisha Toshiba | Electronic device and communication control method |
JP2011090396A (ja) | 2009-10-20 | 2011-05-06 | Seiko Epson Corp | Usbデバイス装置 |
US20110145427A1 (en) * | 2009-12-10 | 2011-06-16 | Brian Amento | Method and apparatus for providing media content using a mobile device |
US8823494B1 (en) * | 2010-11-19 | 2014-09-02 | Logitech Europe S.A. | Systems and methods for wireless device connection and pairing |
US20120309303A1 (en) * | 2011-05-31 | 2012-12-06 | Qualcomm Incorporated | Methods and apparatus for improving nfc activation and data exchange reporting mechanisms |
JP2013156915A (ja) | 2012-01-31 | 2013-08-15 | Canon Inc | 通信装置、通信装置の制御方法、通信システム、プログラム |
Non-Patent Citations (3)
Title |
---|
European Extended Search Report in European Patent Application No. EP15194179.6 mailed Apr. 16, 2013. |
Japanese First Office Action mailed Oct. 4, 2016 in Japanese Patent Application No. 2015-224765 (8 pgs). |
Notice of Preliminary Rejection in Korean Appliation No. 10-2015-0160361 mailed Nov. 3, 2016. |
Also Published As
Publication number | Publication date |
---|---|
JP6092353B2 (ja) | 2017-03-08 |
TWI556108B (zh) | 2016-11-01 |
JP2016119653A (ja) | 2016-06-30 |
KR20160074389A (ko) | 2016-06-28 |
US20160183031A1 (en) | 2016-06-23 |
EP3035713B1 (en) | 2018-08-29 |
CN105721021B (zh) | 2020-06-16 |
KR101794606B1 (ko) | 2017-12-01 |
EP3035713A1 (en) | 2016-06-22 |
CN105721021A (zh) | 2016-06-29 |
TW201626239A (zh) | 2016-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3035713B1 (en) | Close proximity transport configuration | |
US11561910B2 (en) | In-band retimer register access | |
US9830292B2 (en) | Architected protocol for changing link operating mode | |
US9390046B2 (en) | Controlling a physical link of a first protocol using an extended capability structure of a second protocol | |
US11758028B2 (en) | Alternate protocol negotiation in a high performance interconnect | |
US10474607B2 (en) | Adapt link training based on source capability information | |
US9843436B2 (en) | Flexible interconnect architecture | |
CN113434446A (zh) | 灵活总线协议协商和启用序列 | |
US11474967B2 (en) | Systems, methods, and devices for dynamic high speed lane direction switching for asymmetrical interfaces | |
US10515032B2 (en) | Asymmetric transmission (TX) and receive (RX) lanes in a point-to-point interconnect using a peripheral component interconnect express (PCIE) resources in a computer system | |
WO2023129320A1 (en) | Parameter exchange for a die-to-die interconnect | |
US20180011813A1 (en) | Serial mid-speed interface | |
US11036409B2 (en) | Non-volatile memory using a reduced number of interconnect terminals | |
US9959222B2 (en) | In-band configuration mode | |
US20160179739A1 (en) | Symmetrically coupled differential channel |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: INTEL CORPORATION, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:RANGANATHAN, SRIDHARAN;REEL/FRAME:035109/0705 Effective date: 20150108 |
|
FEPP | Fee payment procedure |
Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
CC | Certificate of correction | ||
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 4 |