Hardware Techniques for High-Performance Transactional Memory in Many-Core Chip Multiprocessors