Search This Blog

Thursday, March 24, 2011

USB 3.0 and SATA 3.0 specifications

I know these next two items are not directly related to Java, but . . . . these two items are directly related to Java and the way computers integrate with peripherals.  We shall call this the Immutable Law #34 of USB and SATA.  Besides, this is my blog, I am a tech-head and I can post whatever the hell I want on my blog.
  
"USB 3.0

The USB 3.0 Promoter Group announced on 17 November 2008, that version 3.0 of the specification had been completed and had made the transition to the USB Implementers Forum (USB-IF), the managing body of USB specification.  This move effectively opened the specification to hardware developers for implementation in future products.  The first USB 3.0 consumer products were announced and shipped by Buffalo Technology in November 2009
while the first certified USB 3.0 consumer products were announced 5 January 2010, at the Las Vegas Consumer Electronics Show (CES), including two motherboards by ASUSGigabyte Technology.[74][75] Manufacturers of USB 3.0 host controllers includes, but are not limited to, Renesas/NEC Electronics, Fresco Logic, Asmedia, Etron, VIA Labs and Texas Instruments. As of November 2010, Renesas is the only company to have passed USB-IF certification, although motherboards for Intel's Sandy Bridge processors have been seen with Asmedia and Etron host controllers. On October 28, 2010 Hewlett-Packard released the HP Envy 17 3D featuring a Renesas USB 3.0 Host Controller several months before some of their competitors. AMD is working with Renesas to add its USB 3.0 implementation into its chipsets for its 2011 platforms. At CES2011 Toshiba unveiled a laptop called "Toshiba Qosmio X500" that included USB 3.0 and Bluetooth 3.0, and a new series of Sony VAIO laptops that will include USB 3.0.

Features

A new feature is the "SuperSpeed" bus, which provides a fourth transfer mode at 5.0 Gbit/s. The raw throughput is 4 Gbit/s, and the specification considers it reasonable to achieve 3.2 Gbit/s (0.4 GB/s or 400 MB/s), or more, after protocol overhead.  When operating in SuperSpeed mode, full-duplex signaling occurs over two differential pairs separate from the non-SuperSpeed differential pair. This results in USB 3.0 cables containing two wires for power and ground, two wires for non-SuperSpeed data, and four wires for SuperSpeed data, and a shield that was not required in previous specifications.

To accommodate the additional pins for SuperSpeed mode, the physical form factors for USB 3.0 plugs and receptacles have been modified from those used in previous versions. Standard-A cables have extended heads where the SuperSpeed connectors extend beyond and slightly above the legacy connectors. Similarly, the Standard-A receptacle is deeper to accept these new connectors. On the other end, the SuperSpeed Standard-B connectors are placed on top of the existing form factor. A legacy standard A-to-B cable will work as designed and will never contact any of the SuperSpeed connectors, ensuring backward compatibility. SuperSpeed standard A plugs will fit legacy A receptacles, but SuperSpeed standard B plugs will not fit into legacy standard B receptacles, so a new cable can be used to connect a new device to an old host, but not to connect a new host to an old device; for that, a legacy standard A-to-B cable will be required.

SuperSpeed establishes a communications pipe between the host and each device, in a host-directed protocol. In contrast, USB 2.0 broadcasts packet traffic to all devices.  USB 3.0 extends the bulk transfer type in SuperSpeed with Streams. This extension allows a host and device to create and transfer multiple streams of data through a single bulk pipe.

New power management features include support of idle, sleep and suspend states, as well as link-, device-, and function-level power management.

The bus power spec has been increased so that a unit load is 150 mA (+50% over minimum using USB 2.0). An unconfigured device can still draw only one unit load, but a configured device can draw up to six unit loads (900 mA, an 80% increase over USB 2.0 at a registered maximum of 500 mA). Minimum device operating voltage is dropped from 4.4 V to 4 V.

USB 3.0 does not define cable assembly lengths, except that it can be of any length as long as it meets all the requirements defined in the specification. Although electronicdesign.com estimated cables will be limited to 3 m at SuperSpeed, cables which support SuperSpeed are already available up to 5 m in length.

The technology is similar to a single channel ("1×") of PCI Express 2.0 (5 Gbit/s). It uses 8B/10B encoding, linear feedback shift register (LFSR) scrambling for data and spread spectrum. It forces receivers to use low frequency periodic signaling (LFPS), dynamic equalization, and training sequences to ensure fast signal locking."


---------------------------------------------------------------------------------------------------------------------------------

"SATA revision 3.0 (SATA 6 Gbit/s)



Serial ATA International Organization presented the draft specification of SATA 6 Gbit/s physical layer in July 2008, and ratified its physical layer specification on August 18, 2008.  The full 3.0 standard was released on May 27, 2009.  It provides peak throughput of about 600 MB/s (Megabytes per second) including the protocol overhead (10b/8b coding with 8 bits to one byte). While even the fastest conventional hard disk drives can barely saturate the original SATA 1.5 Gbit/s bandwidth, Solid-State Drives have already saturated SATA 3 Gbit/s with 285/275 MB/s max read/write speed and 250 MB/s sustained with the Sandforce 1200 and 1500 controller. However SandForce SSD controllers scheduled for release in 2011 have delivered 500 MB/s read/write rates, and ten channels of fast flash can reach well over 500 MB/s with new ONFI drives – a move from SATA 3 Gbit/s to SATA 6 Gbit/s allows such devices to work at their full speed. Full performance from Crucial's C300 SSD similarly require SATA 3.0. As for standard hard disks, the reads from their built-in DRAM cache will end up faster across the new interface.  SATA 6 Gbit/s hard drives and motherboards are now shipping from several suppliers.

The new specification contains the following changes:
6 Gbit/s for scalable performance when used with SSDs
Continued compatibility with SAS, including SAS 6 Gbit/s. "A SAS domain may support attachment to and control of unmodified SATA devices connected directly into the SAS domain using the Serial ATA Tunneled Protocol (STP)" from the SATA_Revision_3_0_Gold specification.
Isochronous Native Command Queuing (NCQ) streaming command to enable isochronous quality of service data transfers for streaming digital content applications.
An NCQ Management feature that helps optimize performance by enabling host processing and management of outstanding NCQ commands.
Improved power management capabilities.
A small low insertion force (LIF) connector for more compact 1.8-inch storage devices.
A connector designed to accommodate 7 mm optical disk drives for thinner and lighter notebooks.
Alignment with the INCITS ATA8-ACS standard.

In general, the enhancements are aimed at improving quality of service for video streaming and high-priority interrupts. In addition, the standard continues to support distances up to a meter. The new speeds may require higher power consumption for supporting chips, factors that new process technologies and power management techniques are expected to mitigate. The new specification can use existing SATA cables and connectors, although some OEMs are expected to upgrade host connectors for the higher speeds.  Also, the new standard is backwards compatible with SATA 3 Gbit/s."

Collections, Java Collections Framework, Arrays

I have a question regarding Collections as part of the Java Collections Framework.

"A collection — sometimes called a container — is simply an object that groups multiple elements into a single unit. Collections are used to store, retrieve, manipulate, and communicate aggregate data."

"A collections framework is a unified architecture for representing and manipulating collections. All collections frameworks contain the following:
  • Interfaces: These are abstract data types that represent collections. Interfaces allow collections to be manipulated independently of the details of their representation. In object-oriented languages, interfaces generally form a hierarchy.
  • Implementations: These are the concrete implementations of the collection interfaces. In essence, they are reusable data structures.
  • Algorithms: These are the methods that perform useful computations, such as searching and sorting, on objects that implement collection interfaces. The algorithms are said to be polymorphic: that is, the same method can be used on many different implementations of the appropriate collection interface. In essence, algorithms are reusable functionality."
 "An Iterator is an object that enables you to traverse through a collection and to remove elements from the collection selectively, if desired. You get an Iterator for a collection by calling its iterator method. The following is the Iterator interface.


public interface Iterator<E> {
    boolean hasNext();
    E next();
    void remove(); //optional
}
"
 
My question is this:  public interface Iterator<E>
 
"Public" is the access modifier.
 "interface" is the declaration of the return data type.
"Iterator" is the name of the interface.
"<E>" is the argument passed to the Iterator interface.
 
WHAT IS E???  Is it a generic argument that allows for generalization 
of the Iterator, or that anything may be passed to the Iterator method?
 
Or does <E> represent an index, or element of the Iterator collection???
 
Or both??? 

Tuesday, March 22, 2011

Software Agitation - Agitar Eclipse Plug-In

This sounds like an interesting plug-in to help test large projects.

"‘Software Agitation’ refers to the process of exercising your code by automatically creating dynamic test cases, synthesizing sets of variable input data against such test cases, and analyzing the results.
‘Agitation’ provides a unique interactive understanding of code behavior as a Developer writes or modifies Java classes or methods.
"

To review the PDF:

http://viewer.media.bitpipe.com/1136574296_249/1299792761_137/Agitation_personalCoderReviewer.pdf

Tuesday, March 8, 2011

Thursday, March 3, 2011

Java Tutorials

Since the HighPatriarch(Patriarch = Cameron McKenzie){} will not get me copies of his books, I have had to revert to:

http://download.oracle.com/javase/tutorial/java/index.html

It is a good source and reference guide.