A look into multicore's immediate future: IBM System x Marketing Manager Jay Bretzmann and CDW Technology Specialist Vic Berger just have to know what's in the immediate future for technology. From a hardware perspective, Bretzmann predicts increasing acceptance of x86-based servers for enterprise application serving and more widespread adoption of virtualization. He also thinks multicore will quickly get to the point where it exhausts thread-level parallelism of all but the top-tier of ISV apps like databases and ERP code. Berger sees virtualization growing too, potentially making blade servers the hot hardware technology for 2008.
A good defense for technology innovation is investment: The DoD plans to fund manufacturing technology programs in 2008 that include chip packaging and design efforts. Deputy Undersecretary John Kubricky notes that the department's Manufacturing Technology Program will include system-on-chip packaging technology and design guidelines, manufacturing processes for ceramic matrix composites, and advanced manufacturing of prosthetics for 2008.
APC joins Blade.org board.
Now with decimal floating point and more: The Power Architecture Advisory Council announces the release of the Power Instruction Set Architecture version 2.05 which enhances the capabilities of the Power Architecture with the addition of decimal floating point facilities, power management capabilities, new instructions supporting computation efficiency and memory management, new facilities for measuring resource utilization and partition migration, and other enhancements. The new version (2.05) changes the following from version 2.04:
- Power Management Architecture: Four new hypervisor-level instructions.
- Decimal Floating-Point support.
- Program Compatibility Register: A hypervisor-accessible register to control the availability of processor resources.
- Binary Coded Decimal Assist Instructions: Three new hypervisor-level instructions.
- Hypervisor Emulation Assistance: Illegal Instruction-type Program interrupts are routed to a new interrupt.
- Changes to mtspr and mfspr.
- Load Floating-Point as Integer Word instruction.
- FPSCR extended to 64 bits.
- Floating-Point Copy Sign instruction.
- Parity Instructions: Two instructions that compute the parity on a word and a doubleword.
- Compare Byte Instruction: An instruction that compares each byte of a register to a byte-sized token.
- Come-From Address Register: A hypervisor-accessible register.
- Floating-Point Estimate.
- Load/Store Floating-Point Double Pair instructions.
Testing your server on consumption vs. performance: There's a new (potential) spec in town -- server industry heavyweights have come together to build a new standard for measuring the relation of power consumption to performance in order to give customers a way to analyze products and improve energy efficiency in their products. SPECpower_ssj2008 is the the first industry-standard SPEC benchmark that evaluates the power and performance characteristics of volume server class computers; at present it measures how many server-side Java operations can be performed per watt, then evaluates each server at 10 load levels (10 percent increments from 10 to 100 percent) and provides an average score. Initial benchmarks cover the performance of server-side Java with more workloads to follow. (There are already 12 performance results.)
"No, it's 'step-shift-pause-pivot-step-step' ": (Then "jazz hands.") Scientists at the Naval Research Lab, DortmundU, and BochumU have figured out how to make all the spins in an ensemble of quantum dots identical; this discovery could lead to quantum devices based on solid-state technologies. The quantum bit is the electron spin localized in a quantum dot -- it is the basic unit of quantum info processing, replacing the classical digital bit. While the classical bit has a value of either zero or one, the quantum bit also has all the values between the two poles. So far, the problem in developing quantum devices is that the spin in different dots is not identical due to small variations of the quantum dot shape and size and is only controllable at an individual-spin level (making control systems design extremely complex). This group of researchers think they've got that problem licked -- a new technique that would allow coherent manipulations of an ensemble of electron spins. A tailored periodic illumination with a pulsed laser can drive a large fraction (up to 30 percent) of electron spins in an ensemble of quantum dots into synchronized motion (in fact, the team has demonstrated up to 90 percent synchronization). More on the technique can be found via the original paper citation in Science.
Sim brings science to understanding bangs other the the big one: The actions of explosives has largely been based on trial-and-error tests, mainly because they happen so fast; it's difficult to determine what's going on. But scientists at Lawrence Livermore have created detailed simulation on a supercomputer and slowed those simulations down so they can watch the quantum underpinings of a really good bang. First up: Nitromethane, what gives dragsters their flames. What happens is that at the start, the chemical is optically transparent, but in the first 5 picoseconds of detonation, it becomes an optically reflecting metallic conductor, a state that exists all along the shock wavefront. It instantly reverts right behind the wavefront to transparent and electrically insulating. On the wavefront, the chemical decomposes into smaller, electron-conducting molecules; the detonation temperatures excites electrons so that much current is carried across the front.
Clean carbon microelectronics: Wiezmann Institute scientists have discovered how to dope single-molecule-layer carbon electronics at the molecular level with UV light and electron beams, offering an alternative to silicon that could result in inexpensive, biodegradable, easily reconfigurable electronic devices. The problem with carbon-based electronics so far has been purity of materials and the inability to dope them to make the delicate things more hardy. The UV light and electron beams change the chemical bonds between the carbon atoms that make up the molecular layer, killing the impurities' ability to impede electrical behavior.
A 10-minute multicore partitioning primer: Freescale's IP Development Chief Architect David Kramer and Senior System Architect Steve Cole examine the details necessary to ponder before you make decisions about how to partition applications across multiple cores, details that include how to partition the control and data planes, what to take into account with I/O connectivity, how to share resources, what the verification options are, and some requirements an ASIC-to-FPGA conversion tool will need.
Foreplanning your FPGA conversion: Just so you don't get stuck pushing your semiconductor product through a last-minute FPGA-to-gate array conversion (like so many of them do), NEC Custom SoC Solutions Program Manager Chris Tennant wants to show you the increase in the chance of success that happens if this plan is made as a fore, instead of after-, thought. If you've got this sort of project on the horizon, it would pay to take a gander at the technical hurdles of conversion he's outlined and how to avoid them.
Is that a 3D "o" in my soup?: BhavnagarU physicists are using a room-temperature soup of micro- and nano-sized magnetic spheres to trap and hold photons, much the way traditional electronics control electrons. The team coated micron-size magnetite spheres with oleic acid and dispersed them through a ferrofluid, a suspension of much smaller magnetic nano-particles held in kerosene. When an external magnetic field was applied to the fluid (in a glass cell), laser light passing through the medium was trapped inside. Photons escaped when the field was switched off. (Needs salt.)
"Red [planet] Rover, send microbes on over": The Mars Spirit rover -- on its way to find a good place to survive the Martian winter (think Antartica, but cold) -- found a patch of nearly pure silica that could have come from a hot-spring or fumarole (acid steam) environment. Both of these conditions on earth usually mean lots of microbes. CornellU's Steve Squyres calls it "probably the most significant discovery by Spirit for revealing a habitable [biological] niche that existed on Mars in the past."
Pay phones: End of an era: Are pay phones being phased out? After 129 years, AT&T is planning to get rid of its pay phones in 2008 (although Verizon still manages them in the Northeast). This bodes both good and bad for America -- where will the superheroes change, what will the record-seekers cram themselves and others into? Still, at least there won't be a sequel to that awful Colin Ferrell movie.
Power over optical: What if you could send electricity over glass? Photonic Power Systems has developed a system that uses a laser to pump power (in the form of light) through a fiber-optic cable -- at the other end is a photovoltaic array that converts the light back into electricity to power devices. This invention could make electricity systems in places where sparks could be dangerous (for example, sensors in jet plane fuel tanks) a much safer proposition. It could also make pacemakers slimmer devices. The system's centerpiece is an array of photovoltaic cells on a 2mm square chip of gallium arsenide, indium phosphide, or indium-gallium arsenide, depending on the wavelength of the laser.
| ALF on SDK 3.0 error codes glossary||INFObomb|
|ALF_ERR_SRCH||3||No such task|
|ALF_ERR_2BIG||7||I/O request out of scope|
|ALF_ERR_NOMEM||12||Out of memory|
|ALF_ERR_RANGE||34||Numerical results or args out of valid range|
|ALF_ERR_NOSYS||38||Function or features not implemented|
|ALF_ERR_BADR||53||The resource request cannot be fulfilled|
|ALF_ERR_NODATA||61||No more data available|
|ALF_ERR_COMM||70||Generic communication error|
|ALF_ERR_PROTO||71||Internal protocol error|
|ALF_ERR_BADMSG||74||Internal protocol error|
|ALF_ERR_OVERFLOW||75||Value out of range when converting|
|ALF_ERR_NOBUFS||105||No buffer space available|
|ALF_ERR_GENERIC||1000||Generic ALF internal error|
|ALF_ERR_ACCEL||2000||Generic accelerator error|
| ALF on SDK 3.0 trace events glossary||INFObomb|
|Hook identifier||Traced values|
|_ALF_DATASET_BUFFER_ADD_ENTRY||dataset_handle, buffer, size, access_mode|
|_ALF_EXIT_ENTRY||alf_handle, exit_policy, timeout|
|_ALF_GENERIC_DEBUG||long1, long2, long3, long4, long5, long6, long7, long8, long9, long10|
|_ALF_QUERY_SYSINFO_ENTRY||alf_handle, query_info, accel_type, p_query_result|
|_ALF_REGISTER_ERROR_HANDLER_ENTRY||alf_handle, error_handler_function, p_context|
|_ALF_TASK_CREATE_ENTRY||task_desc_handle, p_task_context_data, num_accelerators, tsk_attr, wb_dist_size, p_task_handle|
|_ALF_TASK_DESC_CREATE_ENTRY||alf_handle, accel_type, task_desc_handle_ptr|
|_ALF_TASK_DESC_CTX_ENTRY_ADD_ENTRY||task_desc_handle, data_type, size|
|_ALF_TASK_DESC_SET_INT32_ENTRY||task_desc_handle, field, value|
|_ALF_TASK_DESC_SET_INT64_ENTRY||task_desc_handle, field, value|
|_ALF_TASK_EVENT_HANDLER_REGISTER_ENTRY||task_handle, task_event_handler, p_data, data_size, event_mask|
|_ALF_TASK_QUERY_ENTRY||talk_handle, p_unfinished_wbs, p_total_wbs|
|_ALF_TASK_QUERY_EXIT_INTERVAL||unfinished_wbs, total_wbs, retcode|
|_ALF_WB_CREATE_ENTRY||task_handle, work_block_type, repeat_count, p_wb_handle|
|_ALF_WB_DTL_SET_BEGIN_ENTRY||wb_handle, buffer_type, offset_to_the_local_buffer|
|_ALF_WB_DTL_SET_ENTRY_ADD_ENTRY||wb_handle, p_address, size_of_data, data_type|
|_ALF_WB_PARM_ADD_ENTRY||wb_handle, pdata, size_of_data, data_type, address_alignment|
|Hook identifier||Traced values|
|_ALF_GENERIC_PERFORM_HOST||long1, long2, long3, long4, long5, long6, long7, long8, long9, long10|
|_ALF_GENERIC_PERFORM_SPU||long1, long2, long3, long4, long5, long6, long7, long8, long9, long10|
|_ALF_HOST_COUNTERS||alf_task_creates, alf_task_waits, alf_wb_enqueues, thread_total_count, thread_reuse_count, x|
|_ALF_HOST_TIMERS||alf_runtime, alf_accel_utilize, x1, x2|
|_ALF_SPU_COUNTERS||alf_input_bytes, alf_output_bytes, alf_workblock_total, double_buffer_used, x1, x2|
|_ALF_SPU_TIMERS||alf_lqueue_empty, alf_wait_data_dtl, alf_prep_input_dtl, alf_prep_output_dtl, alf_compute_kernel, alf_spu_task_run, x1, x2|
|_ALF_WAIT_FIRST_WB_INTERVAL||task_flag, wb_flag, packet_flag|
|_ALF_WB_COMPUTE_KERNEL_INTERVAL||task_flag, wb_flag, wb idx|
|_ALF_WB_DATA_TRANSFER_WAIT_INTERVAL||task_flag, wb_flag, wb idx|
|_ALF_WB_DTL_PREPARE_IN_INTERVAL||task_flag, wb_flag, wb idx|
|_ALF_WB_DTL_PREPARE_OUT_INTERVAL||task_flag, wb_flag, wb idx|
|Hook identifier||Traced values|
|_ALF_ACCEL_COMP_KERNEL_ENTRY||p_task_context, p_parm_ctx_buffer, p_input_buffer, p_output_buffer, p_inout_buffer, current_iter, num_iter|
|_ALF_ACCEL_DTL_BEGIN_ENTRY||p_dtl, buf_type, offset|
|_ALF_ACCEL_DTL_ENTRY_ADD_ENTRY||p_dtl, data_size, data_type, p_host_address|
|_ALF_ACCEL_INPUT_DTL_PREPARE_ENTRY||p_task_context, p_parm_ctx_buffer, p_dtl, current_iter, num_iter|
|_ALF_ACCEL_OUTPUT_DTL_PREPARE_ENTRY||p_task_context, p_parm_ctx_buffer, p_io_container, current_iter, num_iter|
|_ALF_SPE_GENERIC_DEBUG||long1, long2, long3, long4, long5, long6, long7, long8, long9, long10|
| ALF on SDK 3.0 attributes glossary||INFObomb|
|ALF_QUERY_NUM_ACCEL||Return the number of accelerators of a particular type accel_type in the system.|
|ALF_QUERY_HOST_MEM_SIZE||Return the memory size of control nodes up to 4T bytes, in units of kilo bytes (2^10 bytes).|
|ALF_QUERY_HOST_MEM_SIZE_EXT||Return the memory size of control nodes, in units of 4T bytes (2^42 bytes)|
|ALF_QUERY_ACCEL_MEM_SIZE||Return the memory size of accelerator nodes up to 4T bytes, in units of kilo bytes (2^10 bytes).|
|ALF_QUERY_ACCEL_MEM_SIZE_EXT||Return the memory size of accelerator nodes, in units of 4T bytes (2^42 bytes).|
|ALF_QUERY_HOST_ADDR_ALIGN||Return the basic requirement of memory address alignment on control node side, in exponential of 2.|
|ALF_QUERY_ACCEL_ADDR_ALIGN||Return the basic requirement of memory address alignment on accelerator node side, in exponential of 2.|
|ALF_QUERY_DTL_ADDR_ALIGN||Return the address alignment of data transfer list entries, in exponential of 2.|
|ALF_EXIT_POLICY_FORCE||Perform a shutdown immediately and aborts all unfinished tasks if there are any.|
|ALF_EXIT_POLICY_WAIT||Wait for all tasks to be processed and then shuts down.|
|ALF_EXIT_POLICY_TRY||Return with a failure if there are unfinished tasks.|
|ALF_TASK_DESC_WB_PARM_CTX_BUF_SIZE||Size of the work block parameter buffer.|
|ALF_TASK_DESC_WB_IN_BUF_SIZE||Size of the work block input buffer.|
|ALF_TASK_DESC_WB_OUT_BUF_SIZE||Size of the work block output buffer.|
|ALF_TASK_DESC_WB_INOUT_BUF_SIZE||Size of the work block overlapped input/output buffer.|
|ALF_TASK_DESC_NUM_DTL_ENTRIES||Maximum number of entries for the data transfer list.|
|ALF_TASK_DESC_TSK_CTX_SIZE||Size of the task context buffer.|
|ALF_TASK_DESC_PARTITION_ON_ACCEL||Specifies whether the accelerator functions are invoked to generate data transfer lists for input and output data.|
|ALF_TASK_DESC_MAX_STACK_SIZE||Specify the maximum stack size.|
|ALF_TASK_DESC_ACCEL_LIBRARY_REF_L||Specify the name of the library that the accelerator image is contained in|
|ALF_TASK_DESC_ACCEL_IMAGE_REF_L||Specify the name of the accelerator image that’s contained in the library.|
|ALF_TASK_DESC_ACCEL_KERNEL_REF_L||Specify the name of the computational kernel function, this usually is a string constant that the accelerator runtime could use to find the correspondent function.|
|ALF_TASK_DESC_ACCEL_INPUT_DTL_REF_L||Specify the name of the input list prepare function, this usually is a string constant that the accelerator runtime could use to find the correspondent function.|
|ALF_TASK_DESC_ACCEL_OUTPUT_DTL_REF_L||Specify the name of the output list prepare function, this usually is a string constant that the accelerator runtime could use to find the correspondent function.|
|ALF_TASK_DESC_ACCEL_CTX_SETUP_REF_L||Specify the name of the context setup function, this usually is a string constant that the accelerator runtime could use to find the correspondent function.|
|ALF_TASK_DESC_ACCEL_CTX_MERGE_REF_L||Specify the name of the context merge function, this usually a string constant that the accelerator runtime could use to find the correspondent function.|
|ALF_TASK_ATTR_SCHED_FIXED||The task must be scheduled on num_instances of accelerators.|
|ALF_TASK_ATTR_WB_CYCLIC||The work blocks for this task is distributed to the accelerators in a cyclic order as specified by num_accelerators.|
|ALF_TASK_EVENT_TYPE_T||Defined as followed:|
- ALF_TASK_EVENT_FINALIZED: This task has been finalized. No additional work block can be added to this task.
- ALF_TASK_EVENT_READY: This task has been scheduled for execution.
- ALF_TASK_EVENT_FINISHED: All work blocks in this task have been processed.
- ALF_TASK_EVENT_INSTANCE_START: One new instance of the task is started on an accelerator after the event handler returns.
- ALF_TASK_EVENT_INSTANCE_END: One existing instance of the task ends and the task context has been copied out to the original location or has been merged to another current instance of the same task.
- ALF_TASK_EVENT_DESTROY: The task is destroyed explicitly.
|ALF_WB_SINGLE||Create a single use work block.|
|ALF_WB_MULTI (Level 1)||Create a multi use work block. This work block type is only supported when the task is created with ALF_PARTITION_ON_ACCELERATOR.|
|ALF_BUF_IN||Input to the input-only buffer.|
|ALF_BUF_OUT||Output from the output only buffer.|
|ALF_BUF_OVL_IN||Input to the overlapped buffer.|
|ALF_BUF_OVL_OUT||Output from the overlapped buffer.|
|ALF_BUF_OVL_INOUT||In/out to/from the overlapped buffer.|
|ALF_DATASET_READ_ONLY||The dataset is read-only. Work blocks referencing the data in this buffer cannot update this buffer as an output buffer.|
|ALF_DATASET_WRITE_ONLY||The dataset is write-only. Work blocks referencing the data in this buffer as input data results in indeterminate behavior.|
|ALF_DATASET_READ_WRITE||The dataset allows both read and write access. Work blocks can use this buffer as input buffers and output buffers and/or inout buffers.|
| DaCS on SDK 3.0 error codes glossary||INFObomb|
|DACS_ERR_BUF_OVERFLOW||Buffer overflow - the specified offset or size exceed the bounds of the target buffer.|
|DACS_ERR_BYTESWAP_MISMATCH||The byte swap flags on the source and target do not match.|
|DACS_ERR_GROUP_CLOSED||The group is closed.|
|DACS_ERR_GROUP_DUPLICATE||The specified process is already a member of the specified group. |
|DACS_ERR_GROUP_OPEN||The group has not been closed. |
|DACS_ERR_INITIALIZED||DaCS is already initialized. |
|DACS_ERR_INVALID_ARGV||The value of argv is too large or invalid. |
|DACS_ERR_INVALID_ADDR||The pointer is invalid. |
|DACS_ERR_INVALID_ATTR||The flag or enumerated constant is invalid. |
|DACS_ERR_INVALID_DE||The specified DE is either invalid or not reserved. |
|DACS_ERR_INVALID_ENV||The value of env is too large or invalid. |
|DACS_ERR_INVALID_HANDLE||The handle is invalid. |
|DACS_ERR_INVALID_PID||The specified PID does not refer to a valid process. |
|DACS_ERR_INVALID_PROG||Unable to execute the specified program. |
|DACS_ERR_INVALID_SIZE||The size is zero or is not supported by the platform. |
|DACS_ERR_INVALID_STREAM||The stream identifier is invalid. |
|DACS_ERR_INVALID_TARGET||This operation is not allowed for the target DE or process. |
|DACS_ERR_INVALID_WID||The wait identifier is invalid. |
|DACS_ERR_MUTEX_BUSY||The mutex is not available. |
|DACS_ERR_NO_PERM||The process does not have the appropriate privilege or the resource attributes do not allow the operation. |
|DACS_ERR_NO_RESOURCE||Unable to allocate required resources. |
|DACS_ERR_NO_WIDS||No more wait identifiers are available to be reserved. |
|DACS_ERR_NOT_ALIGNED||The buffer is incorrectly aligned for the size of the data. |
|DACS_ERR_NOT_INITIALIZED||DaCS has not been initialized. |
|DACS_ERR_NOT_OWNER||This operation is only permitted for the owner of the resource. |
|DACS_ERR_OWNER||This operation is not permitted for the owner of the resource. |
|DACS_ERR_PROC_LIMIT||The maximum number of processes supported has been reached. |
|DACS_ERR_PROHIBITED||This operation is prohibited by the implementation.|
|DACS_ERR_RESOURCE_BUSY||The specified resource is in use. |
|DACS_ERR_WID_ACTIVE||A data transfer involving the wait identifier is still active. |
|DACS_ERR_WID_NOT_ACTIVE||There are no outstanding transfers to test. |
|DACS_STS_PROC_ABORTED||The process terminated abnormally. |
|DACS_STS_PROC_FAILED||The process exited with a failure. |
|DACS_STS_PROC_FINISHED||The process finished execution without error. |
|DACS_STS_PROC_RUNNING||The process is still running. |
|DACS_SUCCESS||The API returned successfully. |
|DACS_WID_READY||All data transfers have completed. |
|DACS_WID_BUSY||One or more data transfers have not completed. |
|DACS_WID_NOT_ACTIVE||There are no outstanding transfers to test.|
| DaCS on SDK 3.0 trace events glossary||INFObomb|
Where inputs or outputs are pointers to scalar types, both the pointer and the contents will be traced. To avoid any extra overhead of checking for NULL pointers, the trace code will only trace contents for pointers that are either required to be non-NULL by the API spec or already have appropriate checks in the library. The contents of aggregate types will not be traced unless the entire object is passed in as an argument.
In general, there will be two trace hooks per API. The first will trace the input parameters and the second will trace the output values as well as the time interval of the API call. The performance hooks will generally have entry and exit hooks so the post-processing tools can show the time deltas. Note that the performance hooks are also debug hooks and will be enabled when either category is enabled.
This glossary shows DaCS trace events in two tables:
DaCS API hooks
Trace hooks are enabled by
LIBDACS group (0x04) in the config file.
ALF error codes | ALF trace events | ALF attributes | DaCS error codes | DaCS trace events - API hooks - Performance hooks
|Hook identifier||Traced values|
|_DACS_DE_START_ENTRY||deid, text, argv, envv, creation_flags, p_pid|
|_DACS_DE_TEST_ENTRY||deid, pid, p_exit_status|
|_DACS_DE_WAIT_ENTRY||deid, pid, p_exit_status|
|_DACS_GENERIC_DEBUG||long1, long2, long3, long4, long5, long6, long7, long8, long9, long10|
|_DACS_GET_ENTRY||dst_addr, src, src_offset, size, wid, order_attr, swap|
|_DACS_GET_LIST_ENTRY||dst_addr, dst_dma_list, dst_list_size, src_remote_mem, src_dma_list, src_list_size, wid, order_attr, swap|
|_DACS_MBOX_READ_ENTRY||msg, src_de, src_pid|
|_DACS_MBOX_TEST_ENTRY||rw_flag, deid, pid, p_mbox_status|
|_DACS_MBOX_WRITE_ENTRY||msg, dst_de, dst_pid|
|_DACS_MUTEX_ACCEPT_ENTRY||deid, pid, mutex|
|_DACS_MUTEX_SHARE_ENTRY||deid, pid, mutex|
|_DACS_PUT_ENTRY||dst, dst_offset, src_addr, size, wid, order_attr, swap|
|_DACS_PUT_LIST_ENTRY||dst, dst_dma_list, dma_list_size, src_addr, src_dma_list, src_list_size, wid, order_attr, swap|
|_DACS_RMEM_ACCEPT_ENTRY||src_de, src_pid, remote_mem|
|_DACS_RMEM_CREATE_ENTRY||addr, size, mode, local_mem|
|_DACS_RMEM_SHARE_ENTRY||dst, dst_pid, local_mem|
|Hook identifier||Traced values|
|_DACS_COUNTERS1||dacs_de_starts, dacs_de_waits, dacs_put_count, dacs_get_count, dacs_put_bytes, dacs_get_bytes, dacs_send_count, dacs_recv_count, dacs_send_bytes, dacs_recv_bytes|
|_DACS_COUNTERS2||dacs_mutex_try_success, dacs_mutex_try_failure, dacs_x1, dacs_x2|
|_DACS_PERF_GENERIC_DEBUG||long1, long2, long3, long4, long5, long6, long7, long8, long9, long10|
|_DACS_TIMERS||dacs_put, dacs_put_list, dacs_wait, dacs_send, dacs_recv, dacs_mutex_lock, dacs_barrier_wait, dacs_mbox_read, dacs_mbox_write, dacs_x|
Remember the term, Mach-Zehnder: In a paper published in the journal Optics Express, IBM researchers have detailed a silicon-based Mach-Zehnder electro-optic modulator -- which performs the function of converting electrical signals into pulses of light -- that they claim is 100 to 1,000 times smaller in size compared to previously demonstrated modulators of its kind; this could be a significant advance to building multiprocessing chips with optical routing networks. (Get the video here.)
The "Metal" Alliance, wiping out Death Stars to 32nm progress: Kidding aside, IBM and the Alliance (AMD, Chartered Semiconductor, Freescale, Infineon, and Samsung) announced that the "high-k/metal gate" technology for next-gen 32nm devices they are developing -- to make it possible to shrink chip size by up to 50 percent as compared with the 45nm devices -- should be ready to go for alliance members and their clients by H209. (The 45nm devices should get going by the end of Q108.) They've developed and demonstrated a 32nm SRAM with cell sizes below 0.15um2 and have incorporated high-k SOI technology at 32nm.
Sequential logic equivalence checking beats the clock: RTL, register transfer level, verification is a bottleneck in digital hardware design -- functional verification accounts for 70 percent of total design effort and still more than 60 percent of all design tapeouts have to be redone due to logic or functional flaws. This case study provides a description of the system-level to RTL design and verification flow of a commercial graphics processing chip; in this flow, system models were developed to validate the arithmetic computation of video instructions and were then used to verify the RTL implementation using sequential logic equivalence checking, a potential boon to more accurate RTL verification. This study demonstrates that sequential logic equivalence checking can improve the quality of verification and shortened the debug cycle, even helping to produce software workarounds so you can avoid silicon respin (starting over).
Ridding yourself of pesky gate leakage once and for all: Need to eliminate gate-leakage in advanced nodes as small as 10nm? ClemsonU researchers may have the answer -- a high-k dielectric process for CMOS transistors that ends up in a design with 1 million times less leakage. The process involves rapid-thermal atomic layer deposition and the researchers have already crafted an effective gate with the oxide thickness of 0.39nm with only 10-12A/cm2. Using standard chemical vapor deposition techniques. The difference is in the way the researchers optimized the process chemistry and the energy sources they used (it's a secret! until the patent is registered).
Creating a faster computer video [04:55]: Take a guided, less-than-five-minute look inside the new Los Alamos National Labs hybrid Cell/B.E. supercomputer with IBM's Deep Computing VP David Turek and IBM Visualization Architect Barry Minor.
Please see disclaimer on use of "LANL Roadrunner" name.
Microfluidics at home: Being new and down the list for clean-room time, UC-Merced instructor Michelle Khine decided to make perfectly acceptable microfluidic devices -- tiny computer chips with plumbing -- at home, using a laser printer, a toaster oven, and Shrinky Dinks -- plastic sheets that get smaller when they are baked. She and her team design complicated patterns in AutoCAD, print them onto Shrinky Dinks, and cook them. As the plastic gets smaller, the lines of print bulge out, making a tiny pattern that made a great mould for the rounded channels. Then they'd be used to cast a working model in a clear, synthetic rubber. Since these devices are often used for biological research, they made a test one to demonstrate that hamster ovary cells could flow through the channels.
Let your dog sort your vacation photos: Dogs just keep getting smarter. ViennaU researchers have trained dogs to sort photographs by choosing the picture with the dog in it over a picture of landscaping. In other words, they've been able to demonstrate that with some training, dogs can apply an instinctual skill (in this case "categorization," used to recognize food and enemies) to an abstract concept (reasoning). They join birds and primates in this skill. (Oh no! I see visions of schnauzers working in photomats.)
Speed of evolution not constant: UWisc anthropologist John Hawks says evidence shows that human evolution has been moving quite rapidly over the last several thousands years, making today's humans more genetically different than people from 5,000 years ago than those people were from the Neanderthals from 30,000 years ago. Many of the recent changes reflect changes in diet and resistance due to epidemics -- for example, Africans have developed new genes that are offering resistance to malaria, Europeans have developed genes to help adults better digest milk, and Asians have developed a gene that makes ear wax more dry. UUtah anthropologist Henry Harpending notes that the changes have been driven by the colossal growth in the human population -- he also noted that genetic evidence shows that people worldwide (regionally) have been getting less similar rather than more similar. Since the dispersal from Africa 40,000 years ago, there's been less flow of genes between the regions.