Simplifying the Creation of Multi-core Processors: An Interconnection Architecture and Tool Framework